メモリ容量チェック
物理的なメモリ容量からカーネルが使用しているメモリ容量、プロセスが利用しているメモリ容量などは複数のコマンドから調べることができます。方法はいくつかありますが、まず物理メモリ容量を調べるのにはsysctl(8)コマンドを利用できます。
hw.physmemが物理メモリサイズを示しています。実際に搭載されている物理メモリサイズと、カーネルが利用できるメモリサイズを変更するといった設定もできますが、通常はそうした変更には意味がなく設定することはまずないので、この表示がそのままメモリの物理サイズだと思っておけばよいでしょう。
システム全体のメモリ利用状況を知るにはvmstat(8)コマンドがわかりやすいです。freの項目が多いとメモリの使用状況に余裕があることを示しています。srの項目が多いと利用率が高くなっていることを示し、wの項目が増えてくるとかなりシステムが重たくなってきていることを示すようになります。
プロセスごとのメモリ使用量も知りたい場合にはtop(1)コマンドが便利です。Mem:の項目にはシステム全体のメモリの使用状況が表示され、RESおよびSIZEにはプロセスごとの利用状況が表示されます。
Wiredの値が大きくなる場合、ZFS関係でメモリを大量に使っていることを意味します。ZFSでストレージシステムを構築してある場合にはこの値が大きくなっているはずです。RESにはレジデントメモリサイズ、SIZEに掲載されているのは仮想メモリサイズになります。
top(1)で得られる情報は、ps(1)コマンドでも取得できます。こちらの場合はRSSがレジデントメモリサイズで、VSZが仮想メモリサイズになっています。
メモリの使用量が増えるとスワップアウトする分も増えてきます。この分についてはswapinfo(8)コマンドで取得できます。
システムが重かったり、サービスが十分なパフォーマンスを発揮していないという場合にこうしたメモリの使用状況を調べ、メモリの使われていない量が多いままであれば、それはメモリを増やしても性能の改善は期待できないことを意味します。
また、ディスクI/Oが性能のボトルネックになっているといった場合にも、使われていないメモリ容量が多いとかバッファキャッシュにあまりメモリが使われていないといった場合には、キャッシュが効きにくい動作でI/Oが遅くなっており、こちらも同じくメモリを増やすことでは性能の改善は期待できないことを示しています。
上記とは逆の状況になっている場合には、逆にメモリを増設するだけで性能が向上する可能性があります。もちろん性能との因果関係をきちんと調べる必要はありますが、今回紹介したコマンドを活用すればパフォーマンスの改善が期待できるでしょう。
勉強会
第58回 11月29日(火) 19:00- FreeBSD勉強会
2016年11月29日(火)には佐藤広生先生をお招きして第58回FreeBSD勉強会をドワンゴセミナールームで開催します。FreeBSD ZFS性能測定とチューニングのお話をしていただく予定です。第58回FreeBSD勉強会では、FreeBSD勉強会史上初、ニコ生放送を実施します。今後、2ヶ月に1回ほどのペースでFreeBSD勉強会の内容をニコ生放送する予定です。よろしくお願いします。
参加申請はこちらから。
第59回 12月21日(水) 19:00- FreeBSD勉強会
ストレージシステムの基盤として使われることの多いZFS。いったん運用を開始するとあとはボリュームの管理や、ハードウェアの管理、またはより高速なハードウェアの利用などを行いたくなってきます。第59回のFreeBSD勉強会ではそうした部分にフォーカスしてZFSの扱い方を紹介します。このところ続けているFreeBSD ZFS解説シリーズです。
参加申請はこちらから。