無料Wikiサービス | デモページ
Linuxなどのメモ書き

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で参照できる模様。


最終更新 2010/07/03 18:17:48 - kztomita
(2010/07/03 17:49:20 作成)