トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Virtuozzo

Virtuozzoはレンタルサーバとして借りている、使えるネットで使用されているサーバを仮想化するソフト。
1台のサーバ機の中に複数台のサーバがあるかのように仮想化するため、レンタルするには効率がいい。
こういうシステムをVPSと呼んでいる。

専用サーバが一戸建てを所有するようなものだとすれば、VPSはマンションの1室を借りること。
他の住民が暴れたりすればマンション全体に影響を及ぼすこともあるが、安上がりなのは確か。

VPSではリソース(資源)と呼ばれる言葉に多く悩まされる。
「これぐらいまで使っていいよ」というリソースなのだが、逆をいえば制限のことだ。
限界を超えてリソースを使おうとした場合、反応が著しく遅くなったり、最悪の場合は停止したりするため気を使う必要がある。

 リソースの状況を確認する

下記はwww.ryusendo.netのリソース状態。

user_beancounters

# cd /proc
# less user_beancounters

Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
      1794: kmemsize        4066665    4142889   13211648   14680064          0
            lockedpages           0          0        688        688          0
            privvmpages       30251      30481     219942     244380          0
            shmpages            768        768      24438      24438          0
            dummy                 0          0          0          0          0
            numproc              37         38        128        128          0
            physpages         14456      14484          0 2147483647          0
            vmguarpages           0          0      27624 2147483647          0
            oomguarpages      14505      14533      32000 2147483647          0
            numtcpsock           11         11        894        894          0
            numflock              7          7        641        713          0
            numpty                1          1         44         44          0
            numsiginfo            0          0        256        256          0
            tcpsndbuf        114036     114036    1257472    2097152          0
            tcprcvbuf        149692     149692    1257472    2097152          0
            othersockbuf     201240     201240     408576    1048576          9
            dgramrcvbuf           0          0    1048576    1048576          0
            numothersock        127        127        200        200         67
            dcachesize            0          0    2770168    3077965          0
            numfile            2218       2235       7136       7136          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            numiptent            56         56        128        128          0

failcntは最終的なlimitをオーバーした回数。しかし何によってオーバーしたのかは正直よくわからない。この数値がチェックするたびにどんどん増えているようなら、使用しているサービスの調整が必要。

どうしてもサービスを調整したり削ったりできない場合は、借りているVPSのプランを上位プランに変更してリソースのほうを増やすしかない。

Virtuozzoではあてにならないがfreeとtopコマンドでリソースの状態を確認。

free

free -m
             total       used       free     shared    buffers     cached
Mem:          4042       3956         86          0         64        553
-/+ buffers/cache:       3338        704
Swap:        14001       2635      11366

freeの結果はVPS環境1つの状況ではなく、サーバとしての1台のリソース状況になる。
Memのusedはどんどん増えていってfreeを消費し、限界までくると使われていないusedを解放してfreeとしているみたいで当てにならない。

しかし上記の動作でMem容量が足りているときはSwapが発生しないため、Swapがどんどんused(使用)されるようならパフォーマンスが低下しているものと思われる。

しかしVPSなのでどうしようもない。Virtuozzoでは使ったもの勝ち。

top

top
top - 11:51:33 up 8 days, 21:14,  1 user,  load average: 0.01, 0.04, 0.00
Tasks:  32 total,   1 running,  31 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2% us,  0.0% sy,  0.0% ni, 99.8% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   4139564k total,  4075356k used,    64208k free,    69152k buffers
Swap: 14338004k total,  2698672k used, 11639332k free,   589092k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      16   0  1628  560  480 S    0  0.0   0:00.95 init
 5547 root      16   0  1532  532  448 S    0  0.0   0:04.75 syslogd
 5733 root      16   0  4016 1028  832 S    0  0.0   0:10.17 sshd
 5753 root      18   0  2080  780  664 S    0  0.0   0:00.00 xinetd
 5771 root      16   0  3716  996  772 S    0  0.0   0:00.39 vsftpd
 5808 root      17   0  2156 1120  960 S    0  0.0   0:00.00 mysqld_safe
 5864 mysql     16   0 40988 9956 4036 S    0  0.2   0:06.32 mysqld
 6060 root      16   0  6736 1864 1432 S    0  0.0   0:06.13 master
 6073 postfix   15   0  6840 1936 1492 S    0  0.0   0:03.78 qmgr
 7193 root      16   0  2480  916  548 S    0  0.0   0:00.04 crond
 7233 xfs       16   0  2680 1044  780 S    0  0.0   0:00.00 xfs
 7255 root      16   0  1700  428  348 S    0  0.0   0:00.08 atd
 7266 root      16   0  4144 1056  892 S    0  0.0   0:00.13 saslauthd
 7423 dbus      15   0  2400  760  644 S    0  0.0   0:00.00 dbus-daemon-1
 9849 root      15   0 25376   9m 6196 S    0  0.2   0:02.63 httpd
10230 root      16   0  5264  812  664 S    0  0.0   0:01.76 dovecot
10235 root      16   0  7496 1544 1144 S    0  0.0   0:00.93 dovecot-auth
29988 root      16   0  5752 1936 1512 S    0  0.0   0:00.12 cupsd
13992 apache    16   0 32624  15m 5188 S    0  0.4   0:03.46 httpd
24450 dovecot   15   0  3704 1456 1244 S    0  0.0   0:00.00 pop3-login
16369 postfix   16   0  6796 1864 1440 S    0  0.0   0:00.01 pickup
 7480 apache    15   0 32768  15m 5156 S    0  0.4   0:02.05 httpd
10094 dovecot   15   0  4036 1456 1244 S    0  0.0   0:00.00 pop3-login
17468 apache    16   0 31944  13m 3552 S    0  0.3   0:00.48 httpd
18106 apache    16   0 31964  13m 3172 S    0  0.3   0:00.31 httpd
18144 dovecot   16   0  4664 1452 1240 S    0  0.0   0:00.00 pop3-login
18429 root      16   0  6896 2212 1788 S    0  0.1   0:00.02 sshd
19487 hogehoge  15   0  6896 1636 1208 S    0  0.0   0:00.03 sshd
19488 hogehoge  15   0  2164 1296 1056 S    0  0.0   0:00.02 bash
19679 root      15   0  3776 1068  840 S    0  0.0   0:00.01 su
19695 root      15   0  2188 1316 1056 S    0  0.0   0:00.02 bash
22140 root      17   0  2512  928  764 R    0  0.0   0:00.00 top

VIRTは仮想メモリの使用容量、RESはメモリの使用容量になる。
これは自分が使用するVPS環境でのプロセス状況になるので、与えられたリミットを越えていないかチェックできる。

たとえば使えるネットVPSのシルバープランはメモリ制限が128MBなので、RESの合計が128MB以内でないとパフォーマンスが著しく低下することになる。