ストレージデバイスチェック
システム全体でのストレージの利用状況を知るにはiostat(8)コマンドを使います。オプション-xを指定して実行すると、次のようにディスクデバイスごとの統計情報を定期間隔で表示させることができます。ここでは10を指定しているので、10秒ごとにディスクデバイスごとの情報を表示させることができます。
iostat(8)が表示する最初の情報はシステムが起動している間のディスク統計情報の平均値です。それ以降は指定した時間における平均値の出力となります。それぞれの項目は次のような統計情報を意味しています。高負荷時にはqlenや%bの項目をチェックすることで、どの程度の負荷状況にあるのかを確認できます。
表 iostat(8)の項目の意味
項目 | 内容 |
r/s | 1秒ごとの読み込みオペレーション数 |
w/s | 1秒ごとの書き込みオペレーション数 |
kr/s | 1秒ごとの読み込みバイト数(Kバイト) |
kw/s | 1秒ごとの書き込みバイト数(Kバイト) |
ms/r | 1読み込みオペレーションにかかる秒数(ミリ秒) |
ms/w | 1書き込みオペレーションにかかる秒数(ミリ秒) |
ms/t | 1トランザクションにかかる秒数(ミリ秒) |
qlen | トランザクションキューの長さ |
%b | 1つ以上の未処理トランザクションがある時間的割合 |
ここではディスクデバイスの統計情報を表示させていますが、iostat(8)コマンドはターミナルやプロセッサの入出力統計情報なども表示させることができます。iostat(8)の出力を読むことでシステムの入出力状況の多くを知ることができます。
表示するディスクデバイスを絞り込む場合、引数の最後に表示させたいデバイス名を空白区切りで指定します。さらにオプションに-zを追加すると、アクティブではないディスクの統計情報の出力を抑制するようになります。こんな感じです。
ディスクデバイスの利用状況は次のようにdf(1)コマンドを使って表示させます。オプション-hを指定すると、表示されるサイズがより人間が理解しやすいものになります。
最近のFreeBSDはストレージにZFSを使うことが多いので、df(1)の出力には次のようにZFSのデータセット(ファイルシステム)が表示させることが多いでしょう。ZFSのデータセットはディスク容量を共有しているため、UFSの領域とは表示の内容が異なっています。ZFSを使っている場合にはzpool(8)やzfs(8)で利用容量を表示した方がわかりやすいです。
搭載するメモリ容量が増えてきてその重要度が下がりつつありますが、スワップ情報も確認できます。swapinfo(8)コマンドを次のように実行するとどの程度スワップアウトしているかをチェックできます。
swapinfo(8)というコマンドは実はpstat(8)というコマンドの別名です。FreeBSDだとハードリンクファイルになっており、本体はどちらかというpstat(8)コマンドになります。swapinfo(8)コマンドはpstat(8)にオプション-sを指定した場合の動作と同じです。ほかにも-Tを指定してシステムテーブルの利用状況やターミナル関連のテーブル情報を表示させるといったことができます。
さらに細かいストレージ統計情報を得るにはDTraceを使います。iosnoopやiotopなどのプロバイダをチェックすることになります。ディスクエラーのチェックは/dev/log/messagesに出力されるメッセージをチェックするほか、DTraceで/args[0]->b_error == 0/の条件を満たすio:::doneプローブを指定して情報を取得するなどします。
基本的な統計情報はカーネルが保持しており、それら値はベースに用意されているコマンドを使って取得できるようになっています。DTraceが導入されてからは細かい統計情報をDTrace経由で取得できるようになっており、さまざまな方法で集計したデータを得ることができるようになっています。DTraceを使った統計情報の取得は基本的なコマンドの使い方を一通り説明したあとで取り上げていこうと思います。
勉強会
第58回 11月29日(火)19:00~ FreeBSD勉強会
2016年11月29日(火)には佐藤広生先生をお招きして第58回FreeBSD勉強会をドワンゴセミナールームで開催します。FreeBSD ZFS性能測定とチューニングのお話をしていただく予定です。第58回FreeBSD勉強会では、FreeBSD勉強会史上初、ニコ生放送を実施します。今後、2ヶ月に1回ほどのペースでFreeBSD勉強会の内容をニコ生放送する予定です。よろしくお願いします。
参加申請はこちらから。
第59回 12月13日(火)19:00~ FreeBSD勉強会
ストレージシステムの基盤として使われることの多いZFS。いったん運用を開始あるとあとはボリュームの管理や、ハードウェアの管理、またはより高速なハードウェアの利用などを行いたくなってきます。第59回のFreeBSD勉強会ではそうした部分にフォーカスしてZFSの扱い方を紹介します。このところ続けているFreeBSD ZFS解説シリーズです。
参加申請はこちらから。