・現在の状態を確認
# 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