OpenVZ privvmpages

privvmpagesパラメータで、アプリケーションで割り当てらるメモリ容量を制御します。privvmpagesの値を低く設定していると、「Cannot allocate memory」に見舞われます。

このパラメータは結構重要で、メモリの割り当ては2通りの方法があります。

ここでは、vzctlで設定する方法を記します。

vzctl set <__CTID__> --privvmpages $((256 * 割り当てるメモリの最大容量)) --save

例)__CTID__ 101に1GBのメモリを割り当てる。

vzctl set 101 --privvmpages $((256 * 1024)) --save
 UB limits were set successefully
 Saved parameters for VE 101

メモリ割り当ての失敗数(failcnt)を減らすために、バリア(barrier)< リミット(limit)の値を設定した方がよいでしょう。※ failcntはリソースのリミットを超えた時にカウントされます。

バリアとリミットを同時に設定するには以下のように行ないます。

vzctl set 101 --privvmpages $((256 * 1024)):$((256 * 1126)) --save

コンテナを再起動すると設定が反映されます。

通常、メモリの状態をチェックする場合、freeコマンド等を利用しますが、コンテナ内のメモリの空き容量をチェックするには、以下のコマンドでチェックするのがいいようです(*コンテナ内で実行)。

grep privvmpages /proc/user_beancounters | awk '{ print int(($4-$2)*4/1024) }'

関連記事一覧

  1. この記事へのコメントはありません。