メモリ
メモリ
メモリ関連のチューニング項目としては以下のようなものがあります。スワップの利用やダーティなページの扱いに関するパラメータがあります。意味や効果を理解した上で設定を行う必要があります。
| パラメータ | 設定例 | 説明 |
|---|---|---|
| vm.swapiness | 60 | スワップの動作に関するパラメータです。値が大きいほどより積極的にスワップを使用する動作となります。 |
| vm.dirty_ratio | 40 | メモリに対する割合で、ダーティなページがこの割合に達するとpdflushが動作します。 |
| vm.ditry_background _ratio |
10 | メモリに対する割合で、この割合に達するとバックグラウンドでpdflushが動作します。 |
| vm.ditry_writeback _centisecs |
500 | pdflushデーモンは定期的に起動してダーティなデータをディスクに書き出します。このパラメーターはpdflushデーモンが起動する間隔を指定します。単位は100分の1秒です。 |
| vm.dirty_expire _centisecs |
3000 | ダーティなデータがディスクに書き出すために十分に古くなるまでの時間を指定します。この値より長時間メモリ上に存在するダーティなデータはpdflushによってディスクに書き出されます。単位は100分の1秒です。 |
ネットワーク
CPUは使い切っていない、I/Oがボトルネックなっているわけでもないのにパフォーマンスが悪い、ローカルで実行する時とリモートで実行するときでパフォーマンスの差が大きい、といった場合にネットワークがボトルネックとなっている可能性が考えられます。
ネットワークに関しては、カーネルパラメータの前にデバイスドライバ関連の設定を確認してください。ドライバのバージョン、リンクアップしている速 度などです。速度を固定せずにオートネゴシエーションにしていたらリンクアップしている速度が低かった、という単純な設定ミスが原因であるケースもありま す。
ネットワーク関連のカーネルパラメータとしては以下のようなものがあります。
| パラメータ | 設定例 | 説明 |
|---|---|---|
| net.ipv4. tcp_mem |
4096 87380 174760 | メモリ使用量に対するTCPスタックの動作を決定するオプションです。それぞれの値はメモリ・ページのサイズをあらわします(通常は4KB)。 最初の値は、メモリ使用量の最小しきい値をあらわします。次の値は、メモリ圧縮モードを開始してバッファ使用量を圧縮する際のしきい値をあらわします。最 後の値は、メモリ使用量の最大しきい値をあらわします。最大しきい値に達すると、メモリ使用量を減らすためにパケットが破棄されます |
| net.ipv4. tcp_wmem |
4096 87380 174760 | 自動調整に必要な1ソケットあたりのメモリ使用量を定義するオプションです。 最初の値は、ソケットの送信用バッファに割り当てられている最小バイト数をあらわします。次の値は、システムに過大な負荷がかかっていない状態で、バッ ファのサイズをどこまで大きくできるかのデフォルト値を表します(wmem_defaultによって上書きされます)。最後の値は、送信用バッファー・ス ペースの最大値をあらわします(wmem_maxによって上書きされます) |
| net.ipv4. tcp_rmem |
4096 87380 174760 | tcp_wmemと同様のオプションです |
| net.core. wmem_default |
110592 | 送信用ウィンドウ・サイズのデフォルト値を定義します |
| net.core. wmem_max |
110592 | 送信用ウィンドウ・サイズの最大値を定義します |
| net.core. rmem_default |
110592 | 受信用ウィンドウ・サイズのデフォルト値を定義します |
| net.core. rmem_max |
110592 | 受信用ウィンドウ・サイズの最大値を定義します |
今回は主要なチューニングパラメータを説明しました。システムのパフォーマンスに関してボトルネックだと思われる現象に遭遇した際、最初から一部に 原因を特定するのではなく、OS/ハードウェア/アプリケーションなど考えられる可能性をすべてリストアップして確認を行ってください。
ディスク装置のキャッシュがOFFになっていたためパフォーマンスがでなかった、SMPマシンであるのにユニプロセッサ用のカーネルが起動してい た、など単純なミスが原因である場合もあります。原因が単純であるはずがないと考えるのではなく、まずすべての可能性をチェックして本当の原因を絞り込ん でいくことが問題の解決の早道となります。