« 権限委譲と丸投げを区別すべし | Main | 【メモ】 完全個人用のメモ »

September 06, 2005

サーバスペックの決め方

昔初めてサーバを購入することになったとき、サーバスペックをどのように決めたらいいか大いに悩んだものです。そこで今回はサーバスペックの決め方について一般論を述べてみたいと思います。

【大前提】
まず大前提はどのようなサービスでどの程度のユーザ数がどの程度の頻度でアクセスしてくるのかある程度目安がないと判断のしようがないです。これはプロマネかもしくは企画者が決めるものだと思うので決めてもらってください。

【常識的に考える】
サーバスペックの決め方には一応の目安が存在するにはしますが、最終的には勘や経験則での判断になることが多いです。しかしそれだと初めての場合決めようがないですね。ではどうすればよいか。

私は、常識的に考えるという方法をお勧めしたいです。これはどういうことか。たとえばDBの場合は明らかにCPUを駆使しそうだしディスクI/Oもがりがり負荷がかかりそうだ。なのでCPUやHDDを高スペックにしよう、とそういう感じです。ボトルネックとなりうる要素は主に「CPU使用率」「メモリ使用量」「ディスクI/O」「TCPコネクション数」の4つなので、その4つそれぞれについて考えていけばいいと思います。

※こちらの記事(サーバのボトルネックはどうやって調べるか)も参考にしてやってください。

【私ならどう考えるか】
私がサーバスペックを決める場合、このように考えます。

・WEBサーバ(動的コンテンツなし)・・・4要素いずれもそんなに負荷がかからないので最低スペックでOK。(例:CPU1個,メモリ512M以上、HDD18MB回転数5400rpm以上)

・WEBサーバ(動的コンテンツあり)・・・CPUとメモリを駆使する場合が多いです。サービスによってはディスクI/Oも高い可能性があります。(例:CPU2個,メモリ1GB以上、HDD18GB回転数10krpm以上)

・APサーバ・・・CPUとメモリを駆使する場合が多いです。サービスによってはディスクI/Oも高い可能性があります。(例:CPU2個,メモリ1GB以上、HDD18MB回転数10krpm以上)

・DBサーバ・・・CPU、メモリ、ディスクI/O全て駆使する場合が多いです。またディスク容量が当然データ量以上必要になります。あとRAID構成も必要になりますね。(例:CPU2個以上,メモリ2GB以上、HDD73GBx3回転数15krpm以上)、RAID5)


※余談:最近のCPUはかなり速くなってきていて、かつハイパースレディングできるものも多くなってきています。そんなCPUを使えばCPU1個だけでもかなりのキャパシティがあり、CPU1個だけしか積まない選択をすることが多くなってきました。よい時代になりました。

|

« 権限委譲と丸投げを区別すべし | Main | 【メモ】 完全個人用のメモ »

サーバ・OS」カテゴリの記事

Comments

重箱の隅を突っつくようですが、
18MBはHDDのキャッシュサイズではなくてディスク容量であれば18GBではないかと。。。

あとアクセスが多い場合はWEBサーバのアクセスログがgzipやbzip2とかで圧縮しても結構な量になるので別途過去ログの保存場所がない場合はもうすこしディスク容量があったほうが好ましいかと思います。

Posted by: 通りすがり | September 07, 2005 at 01:12 AM

ご指摘ありがとうございます。早速修正しました。

あとログの扱いは組織によってまちまちなのであえてMinimumで書いてみています。(ただ最近は18GBのHDDってすっかり見なくなりましたねえ。。。)

Posted by: sanonosa | September 07, 2005 at 11:51 AM

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/5811279

Listed below are links to weblogs that reference サーバスペックの決め方:

« 権限委譲と丸投げを区別すべし | Main | 【メモ】 完全個人用のメモ »