つぶねこ
@もじらもーど。
▼ DOG DAYS 関連記事
FreeNASでNICx2をroundrobin設定で束ねてnfs鯖にしたら、MAX100MB/s程度で頭打ちににゃる。これはそもそもroundrobinの仕様にゃのか、にゃにか別の原因があるのか・・・にゃどと思ったのだが、top見てみたらCPUがINTで50%くらい食われてサチってた。
あー、roundrobin 1Gb/sってそんにゃにCPU食うのかー。
▼ FreeNAS 関連記事
▼ 変ゼミ 関連記事
FreeNASで現在のNICの使用率を見たかったのだが見あたらにゃかったのでググる。
とりあえずifstatだそうだ。
ifstat -i bce0,bce1,lagg0
とか指定しても良い。
▼ FreeNAS 関連記事
そんにゃわけでnas間でrsyncできるようにはにゃったのだが、やはりCPU負荷がものすごい。
そもそもvmホストじゃあるまいしNAS鯖にCPUにゃんて要らにゃいよね、とか思ってたらnfsのレスポンスとzfsの圧縮で地味に効いてきて、あげくにrsyncしようとおもったらcpuがボトルネックとかびっくりだねっっ
50MB/sくらい出てるしいいかとも思ったのだが、2コアCPUで100MB/s行かにゃいとか結局nfsで転送した方が速いって事に。
あとvmdkが巨大ににゃるとrsyncが急激に遅くにゃって10MB/s程度に落ち込むことがある。にゃんじゃこれ。
さらに、途中でCPUを食ったまま帰ってこにゃくにゃるとか、タイムアウトすることがある。どこをどうやったら不安定ににゃるんだこれ
と、せっかく作ったけどこれはダメっぽい。
rsyncが本来の性能?であればもうちょっと高速にゃはずにゃのだが、何かあるんだろうか。
scpにすればもう少し簡単で高速化するのだが、今度は差分書き込みされにゃい。
高々数百GのファイルをLAN内で差分バックアップするのに思ったより手間取ってるにゃぁ
▼ ESX 関連記事
▼ ZFS 関連記事
▼ TIGER&BUNNY 関連記事
seq 1 10 | while read a ; do
ssh HOST echo $a
done
のようにゃ処理は結構やってた気がするんだが、これにsudoを追加して
seq 1 10 | while read a ; do
ssh HOST sudo echo $a
done
にすると、にゃぜか1しか表示されにゃい。
かにゃり悩んで連打してたら希に3だの9だのまで表示されることがある。にゃんじゃこりゃ・・・結果が確率的に変化するとか何が起きてるんだ!?
というわけで頼りににゃるIRCに投げてみたらsshの仕様らしい。sudoがにゃくても再現する場合もあるとか。
ssh HOST echo $a 0</dev/null
にすればOKらしい。これは罠すぎるだろう。
で、man ssh読んでみるとssh -nがこれ相当らしいのだが、manだけ読んでても気づかにゃいよこんにゃの。
てことでsudoとは関係にゃく、
seq 1 10 | while read a ; do
ssh HOST echo $a
done
のようにゃ処理は
seq 1 10 | while read a ; do
ssh -n HOST echo $a
done
としにゃければ意図通り動かにゃい、ということで、メモ。
尚、
ssh -n HOST echo $a <<EOF
moemoe
EOF
といったヒアドキュメントやその他リダイレクトと併用してるとこんどはssh -nのおかげで動かにゃくにゃるわけで、にゃんかのライブラリににゃってたりするルーチンは状況をよく見てfixしておかにゃいとエンバグする。
あと今回の要件であれば、
seq 1 10 | while read a ; do
echo "$a" | while read b ; do
ssh HOST echo $b
done
done
のようにダミーのwhileを噛ますとまともに動くようだが、偶然動いてる可能性は捨てきれにゃいので本件は要お勉強ということで。
▼ 日常 関連記事
GUIでユーザを作る。/homeは/mnt/hogeとかまぁ何でも良さそうにゃ雰囲気。
sshで
pkg_add -r sudo
visudo
で大体OK
▼ FreeNAS 関連記事
▼ Dororonえん魔くん 関連記事
Firefoxの検索欄の履歴は↓キーで出るのだが、この順序が意味不明で使い物ににゃらにゃい
一応about:configで
browser.formfill.maxTimeGroupings = 1
browser.formfill.timeGroupingSize = -1
browser.formfill.bucketSize = -1
すると順番に並ぶ
▼ Firefox 関連記事
▼ TIGER&BUNNY 関連記事
そんにゃわけでssh -A経由でrsync実行できるようにはにゃったのだが、sudoが挟まってると環境変数が引き継がれにゃいので公開鍵暗号が通らにゃい。
つまり
ssh -A host1 ssh host2 ls
は通るが、
ssh -A host1 sudo ssh host2 ls
は通らにゃい。
ssh -A host1 sudo var=$var ssh host2 ls
とすれば引き継げるはずにゃのだが、host1上での環境変数値で展開する方法がいまいち分からず。どういうエスケープすれば通るのかにゃぁこれ。.shにしてしまえばいいんだろうけど。
結局、visudoして環境変数を初期化しにゃいように変更。
ssh -A -o StrictHostKeyChecking=no host1 sudo rsync -e \'ssh -A -c arcfour,blowfish-cbc -o StrictHostKeyChecking=no\'-a --rsync-path=\'sudo rsync\' -v --inplace --stats --progress --human-readable --timeout=60 file user@host2:/tmp/
みたいにゃ書式で通るようににゃった。
sudoしてるのでniceかにゃにかつけたほうがいいかもやしれにゃい。
尚、visudoして変更しにゃくても、
ssh -A host1 sudo sh -c "env" \>/dev/null \; ssh -A host2 ls
でとりあえず延伸できるんで、途中の鯖でいろいろ追加しにゃいにゃらこっちで。
▼ ESX 関連記事
▼ ZFS 関連記事
FreeNASでNICx2をroundrobinしたらCPUがINTで50%くらい食われて頭打ちににゃってたので、Interfacesのところでdevice pollingをONにして再起動・・・したら帰ってこにゃくにゃった。
見に行ったらIPが割り振られていにゃい。
いろいろ試行錯誤したがどうも挙動が怪しい。ひとまずLAGGを解除すると正常にもどる。configがにゃにか不整合を起こしたかと思ったがどうも違うみたい。
で、ここまでしてふと公式を見ると、
Enable 'polling' on interfaces used by a LAGG interface will make it inoperable.
とか書いてあった。分かってるにゃらGUI画面に書いとけ。
ていうかこれはLAGGしたらdevice pollingができにゃい? それって強烈にCPU食われるんじゃにゃいのかしら。
▼ FreeNAS 関連記事
▼ Dororonえん魔くん 関連記事
- 2010/10/13 - さいきんじゃにゃい侵略!イカ娘 01参照先
侵略!イカ娘 01
FreeNASのzfsにゃnfs鯖で、iostatとifstatを見比べると、どう見ても
zfsのread量 >> ifの出力量
ににゃってる。
そもそもzfsの圧縮が効いてるので逆ににゃるにゃらともかく、これは何か別のことが起きてるようだ。
で、多分これかにゃって事で
/boot/loader.confに
vfs.zfs.prefetch_disable="1"
したら治った。
で、別にこれはprefetchにゃのでメモリが余ってたりシーケンシャルアクセスが多いにゃら良いんじゃにゃいかにゃーってとこにゃのだが、メモリ2GでH/W RAIDでランダムread主体だったので、prefetch無しの方がレスポンスは向上した。が、全体のスループットは多分落ちてるわけで、どっちがいいかねぇ
それにしてもこの手の鯖のキャッシュってのはあまりHITしてにゃいんだろうにゃぁ。出力した直後のデータってのは絶対クライアント側でキャッシュされてるので、むしろ積極的に破棄して別の物をキャッシュした方が良いのかもしれにゃい。その意味ではまだクライアントに渡ってにゃいデータをキャッシュするのは意義がある。
▼ FreeNAS 関連記事
▼ 魔法少女まどか☆マギカ 関連記事
▼ 魔法少女まどか☆マギカ 関連記事