2009/01/29(木)CPI VPSスケールプランの一番安いやつ

以前月額2000円以下で利用可能なVPSサービスというのを調べておりましたが、その続き。

CPI VPSスケールプランはありがたいことに無料のテストサーバーがあるのでこれを申し込んでみました。
そもそもレンタルサーバ契約の目的は
・DNSサーバを移転したい
・メールルータとして使いたい
というのがメインで、
・ちょっと妙なことをするWebサーバを起動したい
ぐらいまでできると嬉しいと思っています。

あんまりばりばりコンパイルしまくる環境でもなくて、yumでがんばるのが筋だとは思ってるのですが、せっかくのテストなので念のためにいじめてみた。
CPI スケーラブルプラン VPS まとめwikiCPIのVPSが使えるようになったあたりから事前の情報収集で特にVS-01プランはメモリ関係が厳しいということが見えていたので、その辺を中心に。
Virtuozzoのメモリはfreeやtopでなくてprivvmpagesを見るべしを参考に、以下のようなスクリプトを用意してメモリの利用状況を確認します
[root@vpstest ~]# cat mem
beans=`cat /proc/user_beancounters | grep priv`
max=`echo $beans | awk '{ print $4;}'`
use=`echo $beans | awk '{ print $2;}'`
let "per=$use*100/$max"
let "mb=$use/256"
let "mmb=$max/256"
echo "privvmpages usage: $mb MB ($per% of $mmb)"
ぐるぐる回してみる
[root@vpstest ~]# while [ 1 ]; do ./mem; sleep 3; done
privvmpages usage: 14 MB (8% of 175)
privvmpages usage: 14 MB (8% of 175)
privvmpages usage: 14 MB (8% of 175)
:
この状態でいくつか作業をしてみた。
事前にyumでインストールしたものもありますが、daemonは初期状態のままです。*1
  • yum install hoge
ピーク時でこんな感じ。
privvmpages usage: 50 MB (28% of 175)
  • mysqlのコンパイル
瞬間的にこの程度まで行く。
makeは-j1相当(オプションなし)です。
privvmpages usage: 137 MB (77% of 175)
Parallels Power Panelでoomguarpagesがイエローアラートになるけどちゃんとmakeできた。
  • mysqldを起動してみる
とりあえず起動しただけでこんな感じ。で、mysqldはいったん落とす。
privvmpages usage: 35 MB (20% of 175)
  • cpan install Moose
PerlはCentOS5.2の初期状態からスタート。v5.8.8だった。
再帰が深くなってくるとぐぐっとメモリが圧迫されて
privvmpages usage: 172 MB (98% of 175)
あー、だめかも、と思ったら
:
Checksum for /root/.cpan/sources/authors/id/A/AD/ADAMK/Params-Util-0.35.tar.gz ok
Uncompressed /root/.cpan/sources/authors/id/A/AD/ADAMK/Params-Util-0.35.tar.gz successfully
Using Tar:/bin/tar xvf /root/.cpan/sources/authors/id/A/AD/ADAMK/Params-Util-0.35.tar:
Couldn't untar /root/.cpan/sources/authors/id/A/AD/ADAMK/Params-Util-0.35.tar
:
だめだった orz
oomguarpagesがレッドアラート出ていました。

だた、再帰的にmoduleを追いかけていったのが原因ぽかったので、改めてcpan install MooseとやってみたらMooseのmake testまで行きました。
結局testで失敗してインストールはされなかったけど。
これだけのmoduleをまとめてインストールすることはそうそうないだろうし、分割してインストールすれば対応できそうではある。


次は運用状態の想定。

元々の目的を想定して、何も考えずにyumで入れたbind, postfix, httpd, mysqld*2を起動したところ、メモリは以下のような状態になった。
privvmpages usage: 140 MB (79% of 175)
bindを落とすと以下のようになるので、bindが食っているらしい。
privvmpages usage: 140 MB (79% of 175)
privvmpages usage: 37 MB (21% of 175)
これではbindは厳しい。bindやめてNSDとか考えないといけないのか?使ったことないけど。
bindさえあげなければpostfixも含めて何とかなりそう。
しかし、mysqldの方が厳しいかと思ったのに、bindの方がメモリ食いますか。


さて、感想。
この環境でコンパイルを行うのは無理ではないけど、余裕もない。
cpuの問題はなくてもメモリの割り当てがシビアすぎる。

そして、結構悩みどころなのが、daemonあげて実運用始めてしまうと何かのコンパイルを行うのがメモリの都合で難しくなってしまうという点。当初の想定通り、基本的にはyum updateでがんばるしかないのだけど、ケースによってはcpanぐらいは使いたいかもしれない。それが制限されるのは...ちょっと悩ましいなぁ。


さて、最後にpostfix, httpd, mysqldを起動したままyum updateをやってみました。30個ほどupdateされましたが、ピーク時でこの程度で収まってくれました。やはりyum主体で運用するのが良いようです。
privvmpages usage: 91 MB (51% of 175)

あと、ネットワークの話。それなりに瞬発力はあるようです。
# wget "http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.1/mysql-5.1.30.tar.gz
02:29:32 (28.7 MB/s) - `mysql-5.1.30.tar.gz' saved [29050568/29050568]

*1 : 後で気づいたのだけど、httpdが起動してました

*2 : mysqldだけ自分でコンパイルしたものを使った