OpenVZ User Beancounters
概要
OpenVZの仮想環境におけるリソース管理機構であるUser Beancountersのメモ。
様々なVPSサービスでも使われているVirtuozzoでもほぼ同じ。
User Beancountersとは
OpenVZのリソース管理機構。コンテナ(仮想サーバー)毎のメモリなどのリソース使用量を確認したり、使用可能な上限を設定できる。
自分のコンテナのUser Beancounters(UBC)パラメータは/proc/user_beancountersで確認できる。
# less /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt xxxxxxx: kmemsize 11554898 59521329 134217728 147639500 0 lockedpages 0 0 844 844 0 privvmpages 120399 467181 447426 492168 20709 shmpages 3471 4773 44742 44742 0 dummy 0 0 0 0 0 numproc 59 192 192 192 2964 physpages 75391 374560 0 9223372036854775807 0 vmguarpages 0 0 74571 9223372036854775807 0 oomguarpages 76807 375413 74571 9223372036854775807 0 numtcpsock 26 416 512 512 0 numflock 7 26 675 742 0 numpty 1 2 42 42 0 numsiginfo 0 28 1024 1024 0 tcpsndbuf 4032672 24530496 24402002 34854994 25653 tcprcvbuf 425984 6159584 24402002 34854994 0 othersockbuf 66496 1743040 2018197 3746709 0 dgramrcvbuf 0 139776 2018197 2018197 0 numothersock 49 512 512 512 142115 dcachesize 516450 1118349 3775875 3889152 0 numfile 1513 4201 6752 6752 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 11 11 35 35 0
メモリ関連のパラメータ
vmguarpages必ず確保できることが保証されているメモリ量。
barrier値分だけはメモリ確保が保証されており、メモリ確保が失敗することはない。
確保量がbarrier値を超えると、たとえprivvmpagesのbarrier値未満だったとしても、システム(同一物理サーバー)内の他のコンテナのメモリ使用量によっては、確保に失敗する可能性がある。
パラメータ名内の"guar"はguaranteeから来ている。
なお、単位はページ数(x86,x86_64アーキテクチャなら1Page==4KB)。他のメモリ関連のパラメータも同じ。
oomguarpages
コンテナ内のプロセスがOOM Killされないことを保証するメモリ使用量上限。
Linuxではメモリ使用量が増えて空きメモリが少なくなると、適当なプロセスをKillして空きメモリを増やし、システムが不安定になるのを防ごうとする(OOM(Out of Memory) Kill)。OpenVZ環境でも、空きメモリが少なくなるとメモリ消費量の多いコンテナ内のプロセスを強制終了させる。
メモリとスワップ空間の使用量(oomguarpagesのheld値)とカーネルのメモリ使用量(kmemsize)およびソケットバッファのメモリ使用量合計がoomguarpagesのbarrier値未満であれば、コンテナ内のプロセスがOOM Killされないことが保証される。なお、OOM Killされるとfailcntが増える。
kmemsize
カーネルのメモリ使用量。
privvmpages
コンテナ内のプロセスが確保できるメモリ量。
held値は現在のメモリ確保量。
barrier値まではメモリ確保可能。barrier値を超えると、スタックサイズ拡張等優先度の高いメモリ確保しかできなくなる。limitに到達すると全てのメモリ確保ができなくなる。メモリ確保ができなかった場合は、failcntが増える。
この値は、確保した量で実際に使用している量ではない(確保はしたが、まだ使われていない可能性がある)。実際の使用量はoomguarpagesで参照できる模様。