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以内でないとパフォーマンスが著しく低下することになる。