こまごまとサーバ移転

 あー、何だか今回のサーバ移転、一言で言うとダメダメでした。
「サーバ移転なんてしたの?」と言われる方、Twitterを参照するか、このドメインのwhoisでも見てみて下さい。

IT従事者としてあんまし同業者にキツイ事は言いたくないのだが、ちょっと今回はホスティング会社に怒りを覚えたのが今回のサーバ移転のきっかけ。

今まではServersman@VPSを使っていたのだが、10月に入ってから何度かスローダウンが発生していた。
具体的には、夕方頃になるとどうもホスト側で反応が遅くなり、箱庭へアクセスできなくなったりしていた。

一応、Apacheのログ解析を眺めてみたり、ネットワーク的なアクセスを確認してみたものの、特にアタックの気配は無し。
スローダウンしているときに見てみても特に変なプロセスも無し。
よってクラッキングやウイルス感染の可能性は低そう。

次にスローダウンしているときの各種statを取るべく、Sarパッケージをインストールして、正常にログが取れる事を確認。
(以前、どーゆーわけだかRedHat系でSarをrpmから入れたのに動かないというイミフな障害があったんだよね…。いつの間にか治っちゃったからもっとイミフだったんだけど。)
取れたSarログを見ても特にヘンテコな数値は無い。
(いや、実はこの時に壮絶に変な値は既に表れていたのだが、「スローダウン=高負荷」という思い込みで気がつかず。後述。)

仕方がないのでホスティング会社の方に「何かトラブル出てませんか?」と問い合わせを投げてみた。

1回目の回答は「特に障害は起きていないです」とのこと。

さいですか。
が、やっぱりWeb経由で夕方にアクセスすると遅かったりつながらなかったりする。
念の為にfsckをオンラインでかけても問題なし。
ただ、CPUもMEMも張り付いていないのでIO系の気配が濃厚だったので、一応もう一度ホスティング会社に問い合わせをしてみる。

「本当に何にもないの?」
(この会社は毎月何かVPSを機能upさせるのでその時にチョイチョイとチョンボをやらかしてくれてた。Apacheのhtdocs直下のファイルが書き変わっていたりとか!)

で、帰ってきた返答が、
「使っている仮想サーバが収容されている物理サーバで、他の客が重いことやってていて引きずられて遅くなっているっぽいので、調べるからちょっと待って。」
とのこと。

ああ、さいですか。
こっちとしてはiostat、vmstat、sarの結果から決して高負荷は掛けていないという自信があったので、とりあえずサポートの解析結果を待った。

で、しばらくすると、サポートから「【緊急】」がタイトルについたメールが来た。

「あ、何かバグでも見つかって緊急メンテかな~」と思っていたら、

「アンタの所の仮想サーバが高負荷掛けていて有害だから、対処しないとこっちから制限かけるぞ。 byサポート」

……はいい??
ナニイッテルンデスカ?( ゜□゜)

ちょっと待て、こっちは既に大した負荷がかかっていない事をちゃんと確認してあるんだから!
マヌケサポートめ、とりあえずこっちを犯人にして時間稼ぎでもする気か??

詳細は書きませんが、夕方に動いているはずのものは、Postfix、ガリガリに削ったApache、MySQL、PHP、perlとPHPで書かれた数本のcron。
どれも大した負荷は無く、メモリも数MB、CPUもほとんど食わない。
箱庭もその前後の更新は15時か19時で、いつも問題となる時間帯には更新がかかっていない。

で、「ふざけんなヴォケ!」とサポートに反論メールを書いて、証拠に2日前からのSarのログを貼り付けようとしたら、

なんと、Disk I/Oがずーっと「0」で記録されているではないか。

MySQLと箱庭が動いている以上、1日を通してDisk I/Oが10分平均で0であり続けるというのはあり得ない。
これは間違いなくOSレベルでおかしい。
SarはOSからステータスをもらっているのでSarで値が取れないという事はOSレベルで何か問題があるということ。
Serversman@VPSは準仮想化タイプのVPSなので、OS自体の責任はホスティング会社側にある。

よって、メールには

「お前のところのDisk IOがおかしいんじゃ。Sarが0指すなんて腐ってるからとっとと直せ。」

という事をオブラート500枚に包んで紳士的に送信した。

ところが……。

「SarでDisk I/Oが取れないのは仕様です。」

と、言い切りやがりましたよ……。
しかも、

「アンタのVPSで負荷がかかっているのは間違いないんです。だってcactiがそう言ってるんですから」

とか言いやがりましたよ。
 

あのねぇ、ボクチャン。
cactiっつーのは単にサーバからの測定値をグラフにして見せてくれるツールの事であって、私が問題としているのはcacti様がグラフを書く元の値の事を言ってるの。
メーターが狂ってるんじゃないの?って話をしているのに、そのメーターを読み取ってグラフにしたのを根拠に「正常です」って言っても論理的にヘンでしょ?
ねぇ、わかったら早くパパ呼んできてね。

もうねぇ、バカかアホかと。

どこの世界に「SarでDisk I/Oが取れないのが仕様です」って胸張って言うVPSプロバイダがあるわけ??
しかも、Sarもiostatも0しか指さない状態で自分のVPSにどれぐらいのIO負荷がかかっているのか測定しろってわけ??
で、こっちがどれぐらいまで負荷を削ればよいのか、いつ、どのプロセスがどういうアクセスかけているのか示せないわけ?上から見てるのに??

しかもその時間にはこっち側ではcron全部コメントアウトしてあったにも関わらず、問題の時間に負荷をかけていたのがcronだって再三断言しやがって、
「cronって断言できるんだったらPIDとかコマンドラインもわかるんですよね?」って聞いたら、
「なんとなく同時間帯にプロセスが次々にできては終わってを繰り返していたからcronかと思った次第です」って、なんとなく直感サポートですか。
そういう挙動で普通に考え付くのはApacheじゃねーのか??おい。
(最終的にこちらで確認したら、MySQLのクエリーに対するプロセスがforkされて、PHPのmax execution timeで引っ掛かって落とされてたよ。IO詰まったシステムではよくあること。)

しかも、サポートから該当時間帯の「Read値/Write値」ってのが数値で来たんですが、

その数値を基にI/O性能を逆算するとビックリするほど性能が低い。
もう「VPSってPentium IIですか?」って時代のぐらい低い。
これじゃあ、はっきり言ってMySQLにちょっとアクセスしたら簡単にこの値になりますよ…。
と、サポートに連絡しても返答なし。

もうねぇ、

  • 中を確認せずに推測でモノを言う
  • サポートを求めてやり取りをしている相手にいきなりメールスレッド外から警告メールを出してくる
  • VPSプロバイダのクセにSarの意味もわかっていないのがサポートやってる

ということで、もうServersman@VPSシラネ状態に一気に信用度は地の底まで落下していきましたよ。
そろそろブラジルあたりに突き抜けているかもしれない。

いやさぁ、そんなにパフォーマンスが欲しいならProに行けって事なのかもしれないけどさ、
ボーダーも測定値もわからない状態でどうやって気をつけろっていうのさ?
勘でパフォーマンスチェックするような超能力もヒマも持ち合わせていないんだよ。
(しかもランク上げたところで、物理サーバでも割り当ててもらわない限りはiostatは0のまんまなわけで。)

……そんなわけで、まずはドメインの管理契約を破棄してレジストラへ移管。
さくらインターネットのVPSの2週間お試しを申し込んでiostatで0より大きい数値が出てくることを確認。
ついでに(試用の時点で大変恐縮だけど)先のServersMan@VPSでブツクサ言われたのと論理的に同レベルの負荷をかけてオカシな事にならないのを確認して、
速攻でサーバを移転させていただきました。

で、喜び勇んで旧VPSを解約してやろうとしたら、
サービス解約は26日以降は来月の料金も頂きます、とか言うので盛大にズッコケる。
仕方がないので11月24日頃にでも解約手続きをするべく、携帯のリマインダーにセット。

今度はメール機能(MTA)をGoogle Appsに移した事もあり、あっという間にサーバ移転完了。
さくらVPS上でHDDのパーティションの切り方が気に入らなかったのでOSをインストールし直したけど、
それでもトータルの作業時間は12時間行っていないと思う。

我ながらもうサーバ移転は職人の域に達したな…フッ。

前のサーバではPHPは5.3を使いたかったからコンパイルしたけど、他は基本的にrpmだった。
でも、今回はApache Killerとかの心配もあったのでApache、MySQL、PHP、perlもコンパイルしてみた。
そのせいかサーバのせいか、心なしか前のサーバよりも動きがサクサク。

しかも仮想OSのシリアルWebコンソールがついてくるので、Webターミナルでapache再起動しようとしてWebターミナルごと落ちるとかマヌケをやっても自宅に帰らずに復旧できるのがステキ!
こんな事なら最初からさくらVPSにすれば良かった…。
(前はApacheをリモートで再起動させるための仕組みをゴニョゴニョで作っていたりした。)

そんなわけで今後ともよろしくお願いしますm(_ _)m