この日記も運用している我が家の自宅サーバ環境にアプリケーションサーバを追加投入しました。 といっても3ヶ月ほど前のことになります。こうしたサーバ運用は全て独学でやっているため、突っ込みどころ満載かもしれませんが、経緯と何をしたかというのを紹介したいと思います。
うちの自宅サーバ環境で提供しているサービスは、ほとんどWebで、これまでは一台のサーバでアクセスをさばいていたという背景がありました。 かれこれ、5年以上前からこのサーバ環境を運用しているのですが、その当時では静的なページと若干のCGIを動かす、しかもアクセスが少ないという状況だったので通常の apache + cgi ベースで運用をしていました。 ところが、ここ1年半ほど前から、Catalyst で作ったアプリケーションを apache + mod_perl で動かすということが必要になってきました。そこで Apache + mod_perl のプロセスによるメモリの所有を減らすため、一台のマシン上に静的ファイル( + 簡単なCGI ) を動かす apache、mod_perl を動かす apache と2つのWebサーバーを立ち上げることにしました。当面はこの方法でよかったのですが、ここ最近のアクセス増大に伴い、mod_perl を載せた apache の子プロセスがメモリを占有する事態が多々起こるようになってしまったのです。Load Avg も高い状態でした。今思うと、俺の設定ミスやプログラム効率の悪さにかなり起因していると思うのですが、何よりサーバがスワップも食いつぶして落ちてしまう状況だったので、対策を立てなくてはいけません。そこで、apache + mod_perl 専用のアプリケーションサーバを導入するという段になったわけです。当然のごとく今までのメインサーバにおける mod_perl の処理を物理的に別のマシンで処理できるので、負荷が軽減されます。メタな解釈からすればスケールアウトと言えるのでしょうかね。
負荷が高い時
自宅でサーバを運用する場合、いかに電気代を節約しつつ、つまり少ない台数でパフォーマンスを高くするか、そしていかにそれを安く作れるかが肝になってきます。そこで、新アプリケーションサーバはパーツを個別に買って自作で作ることにしました。Dell や HP のサーバも改めて見てみるとコストパフォーマンスがよいのと、すでに構成されているという点で惹かれますが、今回は自分で作ろうと思いました。なんといってもクワッドコアを搭載しているIntelのCPU「Q6600」が3万強で購入できたことが決め手です。上記した通り、サーバは常時稼動させるためにランニングコストがかかるので、なるべくスペックの高いCPUを搭載できるのであれば、それに越したことはないわけです。メモリは 64bit OS を動かさないとしているので、フルフルには使えないのですが、4G 搭載しました。それでも1万円強です。マザーボードは、はてなが「Q6600」を載せているものの色が赤いということ知って、あえてMicro/ATXの赤いマザボを選びました。
kamawada(うちのネットワークの名称)の赤は4倍速い!
最終的に見積もりを出した構成は以下のようになります。価格.com のその当時での最安値で計算すると「\76,247」です。購入は、faith というお店から全て通販で買ったのですが、ちょっと安めのHDDを選択するなどしたら見積もりの価格と同じくらいになりました。
-
ケース
価格.com - AOPEN TM-373 BLACK 価格比較
3,467 -
電源
価格.com - エバーグリーン SILENT KING-5 LW-6450H-5 価格比較
5,980 -
マザーボード
価格.com - MSI G33M-FI 価格比較
13,380 -
CPU
価格.com - インテル Core 2 Quad Q6600 BOX 価格比較
31,200 -
メモリ
価格.com - トランセンド JM4GDDR2-8K (DDR2 PC2-6400 2GB 2枚組) 価格比較
11,105 -
HDD
価格.com - SEAGATE ST3320620NS (320G SATA300 7200) 価格比較 11,115 - 合計: 76,247
インストール時、マザーボードのチップが新しすぎるだめ、OSのインストールの際にうまくCDドライブを認識しないという罠がありましたりしましたが、あとは無難にセットアップ完了。top コマンドとかでみるとちゃんと CPU が4つ認識されててテンションあがります。
次に、新アプリケーションで実際に今まで動かしていた Catalyst アプリが動作するかどうかをチェックして(これがまぁ意外と時間かかったわけですが)、本番投入。今ではだいぶ安定していて、static サーバー及び、アプリケーションサーバ、どちらとも Load Avg が低くなりました。
完成したサーバ
これらアプリケーションは自分ひとりで立ち上げたサービスなので、それにおいて負荷の対策をしなくてはいけないという状況は嬉しい悲鳴であり、比較的安価で高性能なマシンを投入することで解決できることも楽しい経験です。もちろん、その負荷は、俺の設定ミスやプログラムの効率の悪さや呼び出しの仕方に起因している面もあると思うので、単純にマシンを投入することじゃなくてチューニングのことも考慮したいとも思っています。とはいえ、サーバというのは、謎にものすごく惹かれる対象です。今サンタさんにプレゼントを頼めるとしたら「サーバください」と言うでしょう。これからも多くの人に利用してもらえる新しいサービスを出して、アクセス過多でサーバさんに喘ぎ声悲鳴をあげさせたいと考えている今日この頃です。
- エレクトロニクス / インテル
- Amazon 売り上げランキング: 10091
- Amazon おすすめ度の平均:
- コストパフォーマンスが高いと思います
- なかなか爆速です。