2009年12月16日水曜日

ただいまZFSの特訓中

最近、FreeBDS 8.0-RELEASE、amd64、メモリ4GBな環境で、ZFSを使い始めました。





「一度に2つ以上の変更をしてはいけない」といった原則がありますが、スピードの早い時代、そんな悠長なこともやってられません。

今回は



  • 新しいパソコン


  • はじめて使う64bit環境(amd64)


  • リリースされたばかりの新バージョンのOS (8.0-RELEASE)


  • はじめて使うZFS


ということで、新しいことづくめ。そんな要因からか、kernel panicがあったり、よくわかんない不調があったりと、ZFSが原因かどうかはわからないのですが、なかなかの駄々っ子ぶり。



まずは、ハードディスクの障害を疑って、smartctl -t long /dev/ad6 といったコマンドで、ハードディスクの自己診断テストを実行。
まったくエラーは無し。



つぎにチューニングすればいいのかな?と思い、ドキュメントを見ていて気がつきました。





では、/boot/loader.confになにやら追加してましたが、これは、amd64版の場合、FreeBSD 7.2以降から不要だと書いてありました。だから、削除。
そして、なんとなく/etc/sysctl.confに以下を追加。



kern.maxvnodes=400000

そしてその場でsysctl kern.maxvnodes=400000を実行。たしかデフォルトは100000だったかな?



あとはこれまでと同じ、動作テストを実行。
ZFSなところをNFS exportして、クライアントからどんどこファイルを書き込んだり、make buildworldしてみたり。



なんだか、今回は調子がよくて、まったくびくともしません。当たり前のように動いています。buildworld、buildkernel、installworld、installkernelすべてできました。



1つ気になるのは、vfs.numvnodesの値。



動作テスト実行中に、こんなperlスクリプトで、vfs.numvnodesの値を5秒間隔で記録しつづけてみました。



#! /usr/bin/perl
use strict;



my $LOG = "/var/log/numvnodes.log";



open( my $fp, ">$LOG" ) || die "open $LOG";



while (1) {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
      localtime();
    my $n = `sysctl vfs.numvnodes`;
    $n =~ s/.*: //;
    my $tmp = sprintf("%02d:%02d:%02d %d\n", $hour,$min,$sec,$n);
    printf $fp $tmp;
    print $tmp;
    sleep 5;
}



値が、ほぼ常に、増加し続けるんですね。そういうものなんでしょうか。





20091215



これがある程度いったところで、また調子悪くなるとかだったら、いやだなぁ。







■ 関連記事







0 件のコメント:

コメントを投稿