比較的大きなZFSプールがあります(raidz3に23のvdev、〜1PB raw)。ヘッドノードには16コアと192GBのRAMがあります。プールにはZILが1つあり、L2ARCはありません。プールはsolaris11.3を実行しています
プールは、一定の1GB/sスループット、20kIOP(> 100kIOPのピーク)で動作できますが、パフォーマンスは数日で低下します。
zpool iostat
)prstat -amL
には、zio_read_intr、zio_write_issue、zio_write_issue_highがたくさんあります。zilstat.sh
を調べようとすると、非常に奇妙なアクティビティが表示されません。プールに接続されたzpool statusコマンドでログデバイスを表示できる理由がわかりませんが、zilstat.sh
でアクティビティを表示できません。
さらに、ZILが正常に動作し、問題なく動作するシステムのほぼ正確なレプリカがあります。唯一の違いは、ZILが別のSASコネクタを介してアクセスされることです。ZILが同じSASチャネルを使用している場合、パフォーマンスが低下する可能性があると予想していました。他のvdevと同じですが、アクティビティが完全にないわけではありません。
iostat -sndzx
は、パフォーマンスが低い理由についての洞察を提供しました(私の元の質問に対する@Andrewのコメントを参照してください)。
プール内のディスクの1つは、平均サービス時間(asvc_t
列)が150ミリ秒から4,999ミリ秒の間で変動し、ビジー時間の割合が60(%b
列)であると報告しました。プール内の他のドライブは3.3msavsc_tで、2%ビジーです。
iostat
によって生成された上記の数値にもかかわらず、zpool status
は、読み取りまたは書き込みエラーなしで、ドライブをonline
として報告していました。
zilstat.sh
を使用してアクティビティが表示されなかったのは、その時点でのみアクティビティがzfs send
/receive
であったためです。受信側で非同期書き込みを使用するsend
/receive
は、ZILをまったく使用していませんでした。ブロックは回転するディスクに直接書き込まれました。
zilstat.sh
でパフォーマンスが見られない場合は、プール内の他の23個のvdevに別のvdevとしてzilを意図したデバイスを誰かが誤って追加したかどうかを疑問に思います。
プールの現在の構成を確認するためにzpool status
出力を提供できますか?プールの作成時に誰かが「ログ」の追加を見逃した場合、zilは期待どおりに動作していません。