・現在の状態を確認
# vmstat -v
524288 memory pages ←実メモリページ数
494223 lruable pages
4115 free pages
2 memory pools
176832 pinned pages ←ページアウトされない使用メモリ
80.0 maxpin percentage
20.0 minperm percentage ←ファイルキャッシュの最低保持割合
80.0 maxperm percentage ←ファイルキャッシュの最大保持割合
15.5 numperm percentage ←実メモリに対するファイルキャッシュの占める割合
76722 file pages ←ファイルキャッシュのページ数
0.0 compressed percentage
0 compressed pages
16.4 numclient percentage ←現在のバッファキャッシュの実メモリに対する割合
80.0 maxclient percentage ←バッファキャッシュの最大保持割合
81069 client pages ←現在のバッファキャッシュのページ数
0 remote pageouts scheduled
9203 pending disk I/Os blocked with no pbuf
8718 paging space I/Os blocked with no psbuf
2740 filesystem I/Os blocked with no fsbuf
30 client filesystem I/Os blocked with no fsbuf
0 external pager filesystem I/Os blocked with no fsbuf
・メモリ関連のパラメータ確認
# vmo -a
・ファイルキャッシュを減らす
明らかに、大量のファイルが何度も読み取られるがない場合 有効
maxperm の値を減らす。
( maxperm > numpermの場合、ファイルキャッシュを取りにいこうとする。実メモリから移動できない実行中のメモリが大きいほど、使われてないメモリがスワップされてしまう)
# vmo -o maxperm=60 [-p]
strict_maxperm を 1 にすると maxperm がファイルキャッシュのハード制限になる
# vmo -o strict_maxperm=1 [-p]
・バッファキャッシュを減らす
大量ファイル読み取りによってメモリを逼迫している場合に有効
当然、ディスクI/Oパフォーマンスは落ちる
maxclient の値を減らす
# vmo -o maxclient=30 [-p]
・空きメモリ確保
大きく空けるとプロセス生成時にページアウトしにくくなる。
前もってページアウトして局所的に遅くなるのを防ぐ
minfree ページアウト開始トリガー
maxfree ページアウト終了
# vmo -o minfree=1000 [-p]
・プロセスごとの使用メモリ量取得
# svmon -P
