改めて説明するまでもないと思うけど....
VPSってのはカオスぉぃ仮想サーバのことですな。
これがキチンと動けば自宅で電気代払って熱におびえながらサーバ運用をすることはない.....はず。
ま、ぱぱネットの場合は俺のPT2地デジレコーダ&トランスコーダを兼用してるので不安定だという
話もあるがネ(^^;;;;
雨後の筍みたいに生えてきてるVPS業者のなかでも、 DTI ServerMans@VPSは価格破壊の先駆者である。 490円/月から借りれてファイル置き場に使ったりできる(むしろ推奨してる?)というのも 新しい。
まあ、世間的な評判ではさくらのVPSなどのほうが 遥に評判いいわけであるが、俺はDTI高速モバイル(イー・モバイル回線)のためにDTI会員になっているので、 とりあえずってことで借りてみた。
MyDTIから設定して5分。 突然rootでログイン可能になった。 すごいお手軽だぞDTI!!
% ssh root@183.181.xxx.xxx root@183.181.xxx.xxx's password: xxxxxxx
さっそくiptables...
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
シンプルセット選んだのがまずかったよーだ...root権までお任せの VPSサービスだから自分でやってねってことね。危ないので全ドロップ設定しておく(SSH以外)。
# yum install iptables # iptables -F # iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # iptables -A INPUT -s 127.0.0.1 -j ACCEPT # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -P INPUT DROP # iptables-save > /etc/sysconfig/iptables # /etc/init.d/iptables restart
ちなみに....「My DTI」/「各種初期化」/「iptablesの初期化」から初期化できるので 間違っても大丈夫。 もちろん俺はまちがえた(汁;)
あとSSHのPasswordAuthentication noにして手元のPCの公開鍵書き込んで とりあえずは一安心。
CPUは...Xeon4コアらしいですな。
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU L5520 @ 2.27GHz stepping : 5 cpu MHz : 903.100 cache size : 8192 KB (省略)
DTIはメモリがキツイ と散々各所で言われているので、いきなりtmpfsを確保してみる。
# mkdir /mnt/test # mount -t tmpfs -o size=500m,rw /dev/shm /mnt/test # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/simfs 52428800 539580 51889220 2% / none 1048576 4 1048572 1% /dev /dev/shm 512000 0 512000 0% /mnt/test
ほう?一応切れるではないか?じゃあ書き込んでみよう。
# dd if=/dev/zero of=/mnt/test/hoge.dat bs=1M dd: writing `/mnt/test/hoge.dat': No space left on device 500+0 records in 499+0 records out 523259904 bytes (523 MB) copied, 0.35086 seconds, 1.5 GB/s
大丈夫そうだ。まあ一番高い1980円/月のコースだからだと思うけど 案外いけるのではないか?
しかし久々にCentOSを使ってみたが....しばらくパッケージアップデートはDebianのaptだったので... yumがかなり遅く感じる。DebianかUbuntu使いたいなー(とかいってみる)
ServerMansの最大の欠点は(これも各所で言われているように) OpenVZベースなのでOSが選択不能 ってことなのよね。一応その代わりにたくさんゲストを詰め込める=安くできる、という ところが利点ではあるんだが、これも実は建前で、さくらVPSとかが完全仮想化で980円始めた今ではまったく霞むね。
まあ、DTIユーザは使ってみるがいいお!
各方面の努力によりリポジトリが整備されているのですごぶる楽である。 ffmpegはhttp://rpmrepo.org/RPMforge/Usingから、
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm # rpm -Uvih rpmforge-release-0.5.1-1.el5.rf.i386.rpm # yum update # yum install ffmpeg
でOKであった(libx264 enabled!)。
djb daemontoolsなどはhttp://download.opensuse.org/から、
# wget http://download.opensuse.org/repositories/home:/weberho:/qmail/CentOS_5/home:weberho:qmail.repo # cp home\:weberho\:qmail.repo /etc/yum.repos.d/ # yum update # yum install daemontools # vi /etc/inittab # ( v1:12345:respawn:/usr/bin/svscanboot 追加 ) # telinit Q
でOKであった。便利便利。そしてServerMans@VPS、案外速いのである。こういう細々とした作業では。
ttserverをコンパイルしてdaemontools経由で起動したところで....
突然のメモリ不足でlsコマンドも動かなくなった(T_T)...... 久しぶりに「echo *」とか駆使しちゃったよおいいい..... しばらくすると使えるようになったがDBプロセスが落ちた...
OpenVZのWiki を読むと、システム全体のメモリが足りない状態でも 最低限保証されるプロセスメモリページ数がoomguarpagesのbarrier値 らしいのね。さっそく確かめてみる。
# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier oomguarpages 6506 16048 26112
......
...えーと26112*4096/1024/1024だから....
えっ?!最上位1980円のプランでも1プロセス当たり102MBしか使えないの? 計算間違ってる?俺。こんなんJavaVMはおろかそこらのRubyプロセスだって殺されちゃう数値だぞ。
値の根拠は何となく理解......490円のエントリープランはメモリ256MB。 その約半分が102MBというわけだ。もしかしてOpenVZってOOMKill設定はホストOSで共通なのかな。 エントリーを何十人分もごっちゃごちゃに詰め込んだサーバに、プロも突っ込まれてると予想....
こういうことを書くとすぐ「ループするテストプログラムかいたけど1GB以上確保できたぞ!」 「DTIは悪くない!」とかいう人が出てくるので、もう少し詳しく説明しよう。
OOMKillっていう仕組みは、図にするとこういうこと。
ユーザーごとに(ゲストOSごとに)起動できるプロセスの総メモリ量は、 当然プラン別に公開されている値で、運がよければそこまで確保できる。
システム全体(ゲストOSを格納しているホストOS)のメモリ使用量がしきい値を越えたとき、ゲストOSのプロセスを殺してメモリを確保する。いわゆるOverCommit状態の解消というやつです。 このとき、OpenVZは、ゲストOSの oomguarpages barrier値未満のプロセスを優先して残す らしい。 言い換えればデータベースサーバみたいに、cputime(稼働時間)は短くても 大量のメモリをコミットするプロセスは即座に殺される ってこと。結局ナニがおきるかというとゲストOSで見えているメモリが十分足りているはずなのに「なんか突然プロセスが死ぬ」ように見えるってことです。本当にnot alloc memoryのときに(緊急避難的に)殺されるのならたいした問題じゃない。どこが閾値かユーザにはまったくわからないまま、突然プロセスが死んだりサーバが起動できなくなるのが問題なんだな。
もちろん、OpenVZでも回避する方法はあって、それはただひとつ 「ユーザを大量に詰め込まない」こと。OverCommitが起きない 余裕ある設定であれば当然起きない。
が!!、DTIは他社が廉価VPSを見て焦ったのか、こともあろうに ゲストOSのメモリが2倍使えます! なんて言い出して るわけですよ......バカジャネーノ? DTIは1サーバに恐ろしく大量のユーザを詰め込むつもりだと 確信するに十分な証拠ですよ。ちょっと無頓着過ぎるよね。
1980円も払って(払ってないけど)プロセスが使えるメモリが102MBまでの上に、 スワップも使えないのでは、さすがに実用に耐えない。 せっかく調子良く設定してたけど無料期間終わる前に解約しないとな。 MyDTIで解約も簡単だからいいんだけどね。
当然、自宅鯖にはこんなアフォな制限はないわけである....まだまだVPSは時期尚早といったところか。
さて、SaaSes VPSにいくか さくらのVPSいくか...悩むな。
「ネットゲームに手を出して大失敗」しか思い浮かばない程度の 情弱ぱぱんだです。 すみません....
さくらのVPSを借りました。 メモリ512MBのディスク20GBということで正直スペック的に 物足りなくはあるが....
ServerMans@VPSで復帰不能のインスタンスを作ってしまった私には、 このシリアルコンソールが光輝いてみえますう(T_T) 仮想マシンの/etc/inittabをみると
#serial co:12345:respawn:/sbin/agetty -h 115200 ttyS0 vt100
ってシリアルコンソールの定義行があって(削除しちゃダメだよ)これがコントロールパネル内のJavaScript経由でWebブラウザにリアルタイムで入出力されるのだ! すばらしいいい! これでiptablesの設定ミスってもSSHサーバの設定ミスっても 大丈夫だ。というかやろうと思えばOS再インストールもできるらしい。
そりゃそうだ、無茶はさせられない...といいつつ、 mmap()とepoll()を積極的に使うTokyoTyrantサーバを11個起動してみた(笑) 普段はPhenomII(2.6GHz/クワッドコア/4GBメモリ/インテルSSD)で動かしているものだ。
当然I/O待ちでロードアベレージがひどいことになっているけど.... こんなのでも動くんだな!すごいなあ。
この時点で DTI ServerMans@VPS Proは完全に用無しとなった 。さくらの足元にも及ばない。 ServerMansのPro(さくらのVPSの2倍の価格)では 完全にnot alloc memoryでシステム総初期化以外何もできなく なっていたからな。再インストールしか手がなかった。
無茶させすぎだって?すぐに落とすよお(´・ω・`)
サーバを落として素の状態で70万件のTokyoTyrantのデータベース(インデックス14個付き)をtctmgr optimize(最適化)してみた。ほとんどディスクのランダム性能を測定しているに等しい処理だが.....
結果、 Phenomサーバ:2分、ServerMansVPSPro: 6分、さくら:20分でも終わらず となった。ServerMansのほうが ディスクは確実に速い。さくらはCPUやメモリ関連では粘るけど、I/Oの絶対性能は高くない気がするね。
まあ980円だよな、これ。年間1.2万円。ちょっと試用するだけで解約するつもりだったけど維持しようかなあ。もっといいプランがさくらで出てきたらインスタンスごと乗り換えればいいんだし。
俺がサーバに望んでいる用途は、明らかに 「おめえ専用サーバ借りろよ!月5万円くらいの!」 とプロバイダに言われるような超高負荷の処理であって、「ちょっとファイルサーバ代わり、あとPHPのテストしたいんだー」みたいな普通の用途とは異なる。
だから、俺の日記を以ってして「ServerMansは全部ダメだ」という結論をくださないでほしい。
例えば、さくらのVPSは基本的にインスタンスを1種類しか選べない(これから複数OSのインスコに対応するらしいが)のに対して、 ServerMansは シンプルセット、エンジニアセットといった構成を選べるのは 大きな利点である。ぶっちゃけXAMPP環境ほしければ ホームページセットを選択するだけで手間は何も要らない。 大変わかりやすいのである。