■メモリ開放
※kernel の 2.6.16 以降
ページキャッシュを解放
# echo 1 > /proc/sys/vm/drop_caches
dentry,inodeを解放する
# echo 2 > /proc/sys/vm/drop_caches
ページキャッシュ,dentry,inodeを解放
# echo 3 > /proc/sys/vm/drop_caches
・手順
free(事前にメモリの状況を把握する)
sync
echo 3 > /proc/sys/vm/drop_caches
free(メモリが開放されたのか確認する)
※syncコマンド
機能:バッファ(メモリ上のデータ)の内容を強制的にディスクに書き込みます。
システムを停止する前に、バッファ内に蓄積されているデータで、
まだハードディスクに書き込まれていないものは、このコマンドで書き込んでおく必要があります。
■カーネル内部のパラメータ
・カーネル内部のすべてのパラメータ
sysctl -a
・メモリのパラメータを取得
sysctl -a | grep vm.
・ファイルシステムのパラメータを取得
sysctl -a | grep -i fs.
・ネットワークのパラメータを取得
sysctl -a | grep -i net.
■カーネルパラメータの変更方法
カーネルパラメータは「/proc/sys」ディレクトリ以下に設定されています。
各項目に直接値を入れることで動的に変更することが可能です。
例:
# echo 512 > /proc/sys/kernel/msgmni
# echo 50 > /proc/sys/vm/swappiness
または
# sysctl -w kernel.msgmni=512
この2種類の方法は一時的な変更だけで、OSを再起動すると設定した値が元に戻ってしまいます。
再起動しても常に設定値を反映させるには以下の方法で設定します。
↓
「/etc/sysctl.conf」ファイルに設定
「/etc/sysctl.conf」はカーネルパラメータを記述する設定ファイルです。
このファイルにパラメータを追加し「sysctl -p」を実行するとファイルが読み込まれ値が設定されます。
OS起動時には「/etc/rc.sysinit」の処理中に「sysctl -p」が実行されますので、
再起動をしても同じ値が設定されることになります。
■カーネルのメモリ関連のチューニング項目
vm.swappiness スワップの動作に関するパラメータです。値が大きいほどより積極的にスワップを使用する動作となります。
vm.dirty_ratio メモリに対する割合で、ダーティなページがこの割合に達するとpdflushが動作します。
vm.ditry_background_ratio メモリに対する割合で、この割合に達するとバックグラウンドでpdflushが動作します。
vm.ditry_writeback_centisecs pdflushデーモンは定期的に起動してダーティなデータをディスクに書き出します。このパラメーターはpdflushデーモンが起動する間隔を指定します。単位は100分の1秒です。
vm.dirty_expire_centisecs ダーティなデータがディスクに書き出すために十分に古くなるまでの時間を指定します。この値より長時間メモリ上に存在するダーティなデータはpdflushによってディスクに書き出されます。単位は100分の1秒です。
vm.min_free_kbytes 最低空き容量(この容量をした回ったときページキャッシュが開放される)
vm.dirty_expire_centisecs これは、キャッシュ上に存在しているページの存在時間がこの値を過ぎた場合にライトバックされます。デフォルト値は3000です(単位は10m/s)
vm.dirty_writeback_centisecs これは、pdflushの起動間隔を指定するパラメータです。デフォルト値は500です(単位は10m/s)
■カーネルのネットワーク関連のチューニング項目
net.ipv4.tcp_mem
net.ipv4.tcp_wmem
net.ipv4.tcp_rmem
net.core.wmem_default
net.core.wmem_max
net.core.rmem_default
net.core.rmem_max
■プロセスとユーザの制限値を取得
ulimit -a
■カーネル内部でのシェアードメモリなどに関係する設定
ipcs -u
ipcs -l
■Linuxのブート情報を取得
dmesg