Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2016/06/13 01:44 - 2016/06/13

ディスクIOの悩みは専用サーバで解消! 「さくらのVPS(8G)」から「さくらの専用サーバ」へ。



 
先週 6/4(土) am 3:00 ~ am 8:00 に、デジ埋やコミックダッシュ!など
ckworks.jp のサービスを収容しているサーバは突発メンテナンスによって
サーバ移行 を実施いたしました。当該時間帯にアクセスを頂きました方には
ご迷惑をお掛けいたしました m(_ _)m
 
今回はその顛末について簡単にご説明します。具体的には、
「さくらのVPS」から 「さくらの専用サーバ」 へのお引越しです。

元々ここ ckworks.jp (その前身 c-kom.homeip.net) は自宅サーバで
運用されていましたが、2011年6月からは震災による計画停電への
対応のため「さくらのVPS」に移行して運用されていました。
 
■2011/06/05 [もし個人運営のネットサービスがさくらVPSの『8Gプラン』を使ったら]
 
自宅サーバと違ってスペックを最強にすることは難しいですが、
夏の日の熱暴走のリスク等にうなされることがなくなったのは
本当に助かりました。外部のサーバを借りるということの良さは
ハードのメンテから完全に開放されるという1点に尽きます。
 
■VPS(仮想専用サーバー)|さくらインターネット - 無料お試し実施中
http://vps.sakura.ad.jp/

 
私が2011年6月から選んだのは 「さくらのVPS 8Gプラン」 でした。
CPUは6コア、メモリは8GB、ディスクは800GBで、料金は7,776円/月。
 
ちなみに、これは最新の石狩リージョンのお値段で、私が最初に契約
した頃の東京リージョンは9,573円/月でした。その後大阪リージョンに
移って今回移行するまでずっと8,208円/月で使っていました。
 
しかし、最初はそれほど問題もなく動いていたサーバでしたが、
ここ数ヶ月は 非常に不安定な状況 になってホトホト困っていました。
具体的にはアニメレーダーというサービスを動かし始めたことが
大きな要因ではあるのですが、、、
 


 
これがとある日の CPU usage と Load average のグラフです。
グラフが欠けている時間帯がありますが、これはサーバが完全に 無応答状態
になってリソース監視のmuninのプログラムがまともに動かなかったことを
示しています。そうでなくても、Load average が20を超えているような
状態ではサービスはまともなレスポンスを返せていない状態です。
 
なぜこんな状態になってしまうのか、というのをとにかく色々考えて
プログラムの見直しなども行ってきたのですが、どうにもその根本原因が
掴めません。というのも、もちろんある程度の負荷は掛け続けていることは
あるにせよ、同程度の負荷でも全然平気だったり、
 
 急にドン詰まりして完全にパンクしたり
 
することがあったからです。パンクした瞬間に何が起こったのかを
調べてみても、そのときに急激な負荷をかけたプログラムがあると
いった分かりやすい状況ではありませんでした。
 
結果的にこの状況を打開するため、Load averageが瞬間的に20を超えたら
重要度の高くないプロセスを一斉にKILLしまくってapache+MySQLを
強制再起動するという、
 
 自称「アーマゲドン」プログラム を仕込んで
 
何とかごまかし続ける日々が続いたのでした。
 
 
そんな中で1つの可能性に気がつきました。ディスクIOの制限 です。
 
■【さくらVPS】ブログのレスポンスが遅かった理由が判明 - ニャッキ格闘列伝
http://blog.malrone.info/archives/4269
お客様の仮想サーバが収容されるホストサーバについて確認いたしました
ところ、20日4時頃からホストサーバの負荷が急増したため、一部の負荷の
高い仮想サーバに対し、一時的な制限を実施しておりました。

 
■さくらのVPSは突然制限かけられて激重になるから要注意 | GUiLZ.ORG
http://www.guilz.org/2013/03/28/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps%E3%81%AF%E5%88%B6%E9%99%90%E3%81%A7%E6%BF%80%E9%87%8D%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%8B%E3%82%89%E8%A6%81%E6%B3%A8%E6%84%8F/
コメント欄より、1MB/secを越えるDISK I/O負荷は、このクラスのVPSに対しては非常に高い負荷であり、制限対象になってもおかしくないとの ご指摘をいただきました 。他の情報も検索いたしましたところ、こちらのサイト様の情報 に、負荷がMB/sec単位となった場合は、サーバー負荷が高まっている旨の記載がございました。
 
これによると、さくらのVPSでは、一定以上のディスクIO負荷を掛けた場合、
運営による手動制限が掛かる ことがある、とのことでした。
その明確な基準は明らかにされていませんが、上記の記事では常時MB/s級の
負荷を掛けるとその対象になる可能性があるとの情報が書かれています。
 

 
これは今回の移転直前のグラフですので移行作業のぶんのディスクIOも
含まれているのですが、それにしても、ディスクのスループット計測では
平均で read 2.0MB/s, write 870KB/s という数字が出ていました。
上記の基準だと ディスクIOを使いすぎ、ということになるのでしょうか、、。
 
そもそも、私の中では当初、VPSがディスクリソースを他者と共有している
という認識が希薄でした。VPSは仮想環境の中で個人ごとにリソースが
割り当てられているという印象を持っていたからです。
 
しかし実際にはVPSでは、リソースを完全に区切られているのは
「CPU」と「メモリ」だけであり、「ディスク」と「ネットワーク」については
レンタルサーバと同様に 「ごった煮の共生環境」 であるということを
あらためて意識せざるを得なくなりました。
 
上述の情報から察するに、ディスクIOが急におかしくなる可能性は2つあって、
 
(1) 自分が ディスクIOを使いすぎてIO制限措置を受ける
(2) 共生している 他のサーバが ディスクIOを使いすぎて、自分も影響を受ける
 
そのどちらであっても、自分自身だけでは問題なく動いていたはずのサーバの
状態が急激に悪化する要素を秘めていました。実際、サーバがトラブルに
なったときには必ずといってよいほど、先のmuninのCPUグラフでいう
「濃い青色」の部分、すなわち IO waitの値が異常に 膨らんでいました。
 
6コアのCPUも、8GBのメモリも、足りないということはありません。
足りないのは圧倒的に、ディスクIOだったという結論で間違いなさそうです。
 
 
そこで、私が目をつけたのが「専用サーバ」です。
ディスクを他者と共有する「VPS」には見切りをつけて、
 
 負荷トラブル=自分の所為、と完全に割り切れる環境
 
として専用サーバならやりくりがもっとシンプルになると考えたからでした。
 
調べてみると、専用サーバはVPSの高性能プランよりさらにお高いですが、
そもそも今まで使っていた「VPS 8Gプラン」(8,208円/月)も個人で使うには
相当お高いものでしたので、それと比較すると「専用サーバ」の最低プラン
(9,720円/月)は若干の+αで済む金額のものが用意されています。
 
■専用サーバー(ホスティングサービス)| さくらインターネット
http://server.sakura.ad.jp/

 
そんなワケで、藁をもつかむ気持ちで専用サーバを契約します。
最低プランそのままでも悪くはなかったのですが、
ここではメモリ+8GB増設をしてメモリ16GBにしています。
 

 
月額費用: 9,720円/月 +メモリ8GB追加 500円/月 = 10,260円/月
 
月額1万円超え・・・個人でチャレンジするにはちょっと腰が引ける
お値段ですね・・・ただ前述のとおり元々使っていたVPSの8Gプラン自体も
そもそも月額8千円級というのは個人ではかなり厳しいものでしたので、
いまさらその差額に怯んでいても仕方が無い、むしろこれでサーバトラブル
から本当に解放されるなら安いものだ、という考えで契約しました。
 
むしろお値段としては、
 
初期費用: 97,200円 +メモリ増設12,960円 = 110,160円
 
こっちのほうがキツイでしょうかね・・。
まぁこれも、自宅サーバでやるとしたら自分で最初に自作PCを買うでしょ?
その値段みたいなものだと思えばこんなものでしょ? と自分に言い聞かせました。
デジモノ狂はこの手の自分への言い訳が上手になるんですよ ヽ(`Д´)ノ
 
ただ、移行前に1つだけ不安があったのはCPUコア数でした。ここだけは
移行前のVPSと比較して 6コア→4コア とダウングレードになるからです。
 
よりお高い専用サーバに移って、それでいて負荷が悪化したなんて言われたら
たまりません。しかし専用サーバの1つ上のプランは、6コアではありますが
月額が15,120円/月と一気に1.5倍に跳ね上がります。これはさすがに
許容できるお値段ではありません。ここはIO waitが減ることとメモリが
増えることでCPUコアを使わずに済む可能性に賭けてみるしかありません。
 

 
実際、移行前のVPSサーバのCPU usageの長期的な傾向を見ると、
平均のidle値は 276% / 600% という数字を示していました。
すなわちusageの合計は 600% - 276% = 324%。4コアでもギリギリ
足りる計算ではあります。もちろん長期傾向でギリギリでは、
短期では危険というのは間違いないのですが、そこは無駄な
IO waitが減ってくれれば解消する、という希望を持つしかありません。
 
 
そんなわけで、いよいよ決行です。
 

 
相当余裕を持っていたスケジュール、、のはずだったのですが、結果的には
am 8:00 一杯いっぱいまで掛かってしまい、相当に焦りました。
 
事前にできるだけデータコピーをして、メンテ時間では最終差分だけを
コピーする算段なのですが、その最終差分自体の作成にもだいぶ時間が
掛かります。というのは、そういう コピープロセス自体 がVPS側にとっては
制限対象ともいえるものであり、ディスクIOが自由に使えないからこそ
抜け出すのもひと苦労、という矛盾と戦うことになるのでした。。。
 
 
そんなこんなでもありましたが、どうにかこうにか移行作業は完了。
6/4(土) am 8:00~からはckworks.jpは「さくらの専用サーバ」で無事に
動くこととなりました。
 
、、、で、移行後はの負荷どうなったかと言いますと、
 
 
 結論から言うと「大勝利」であります!
 
 


 
もっとも懸念されていたCPUリソースは、idle値が「246%/400%」。
すなわちCPU usageの合計は 154% 程度で済んでいます。4コアでも
十分まかなえる数値です。Load averageの平均がなんと 「1.95」
今までのサーバでは平均9を超えていたのと比べると夢のような
安定性です。「アーマゲドン」プログラムももう必要がありません。
 

 
Disk throughputの平均が read 636KB/s, write 1.0MB/s。
writeはちょっと大きく見えていますが、このグラフの最初のほうが
まだ移行コピー作業期間中を含んでいますので、実態としては
write 800KB/s程度です。
 
しかしデイリーバックアップの時間など、瞬間的には数MB/s~数十MB/sを
記録することはあります。そんな時間帯でも、VPSのときのように他者に
迷惑を掛けることやIO制限されることにおびえることはありません。
 
 ディスクを占有できるということがこんなにも自由
 
なことだとは思いもしませんでした。サーバスペックというとどうしても
CPUコア数やメモリ容量に目が行きがちですが、近代技術に於けるサーバの
ボトルネックは実は「ディスク」なのではないかと、そう思えてなりません。
健全なディスクの上に乗らないと 他のリソースが全てドミノ倒しで
消費されていってしまいます。
 

 
こちらはMemory usage。16GBのメモリを積んだものの、結果的には
そんなに要らない、みたいな状態になっています。ちょっとドキドキして
memcachedに2GBとか割り当てて遊んでみたりしていましたが、statusを
見たら100MBも使っていなかったのでやっぱりやめました(おい)。
 
じゃあ16GBじゃなくて8GBでも良かったんじゃないか、という気もしないでも
ないのですが、一方で、メモリをガン積みすることでディスクへの負担が
減っている面は否定はできません。
 
MySQLとapacheがメモリを取り合うことも心配しなくて良くなりましたし、
MySQLのキャッシュの効きもだいぶ変わっているでしょう(未確認)。
さらに、余ったメモリが全部ディスクキャッシュに回されるというlinuxの
特性上、メモリはあればあるだけ ディスク負荷を減らす ことにります。
月額+500円でメモリを+8GBできるなら、精神安定剤としての
効果はばつぐんといえます。
 
 
以上、「さくらのVPS(6コア+8G)」から「さくらの専用サーバ(4コア+16GB)」
に移行した顛末とその結果としての負荷について、でした。繰り返しますが、
 
 ディスクを占有できる喜び
 
言い換えると、他ユーザとのリソースの取り合いに怯える日々からの解放は
何モノにも代えがたいものでした。正直、個人でここまでする方はあまり
いらっしゃらないとは思いますが、VPSでディスクがなんか怪しい、と
思った方は、専用サーバは1つの候補としてアリなのではないかと思います。
 
なお、専用サーバでも、最低プランだと「ネットワーク」はやはり共用に
なってしまうのですが、今のところネットワークでボトルネックになるような
事態はなさそうです。もしそういう問題が起こった場合には、専用サーバには
ネットワークも帯域を買う追加オプションがあることはあります。
 
いずれにせよ、サーバは仮想化の時代で、CPUコアもメモリも柔軟に変更できる
こんな時代になったからこそ 「ディスクが命」。そんなことを思い知らされた
一件でありました。これからは多少枕を高くして眠れそうです。(運用屋的発想)

CK@デジモノに埋もれる日々 @ckom
ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



投稿者 CK : 記事URL | 雑談 | | 2016/06/13 01:44


« 5~6時間は必要? 大洗「ガルパン街なかかくれんぼ」徒歩で踏破チャレンジ!

トップに戻る

PS4コントローラが「白点滅」で認識しないときは「セーフモード」を試す »


▼ 関連記事 ▼



▼ コメント ▼

ご自由にコメントください(=゜ω゜)ノ  ▼ コメント入力欄を開く ▼
※管理人は多忙のためお返事はほとんどできません(スミマセン)。
スパムおよび本文と無関係なコメントは削除対象になる可能性があります。


▼ はてなブックマークのコメント ▼


▼ トラックバック ▼

このエントリーのトラックバックURL:

★コミックダッシュ! 10,000人突破ありがとうキャンペーン!(9/18~10/23)
 
デジモノに埋もれる日々 : (C) CKWorks