必要なサーバースペックを求める良い方法・・・

月間PV数とか接続クライアント数などの大雑把な指標から、必要なサーバースペックを求めたいと言う質問は昔からよく見かけます。答えは単純「そんな便利な方法はない。」の一言に尽きます。

必要なサーバスペックを求めるには実測にまさる方法はありません。サーバ行われる一連の処理を想定して適当なモックアップを作り、実際にアクセスして計測すれば良いのです。

なにも想定している最大の負荷を実際にかけて見る必要などは無く、数百回/minとかの適当な回数の処理を行い、CPUやネットワーク、ディスク、メモリの負荷量を計測すれば十分です。CPU使用率(%)、メモリの使用量(MB)、ディスクの読書量(MB/s、IOPS)、ネットワークのトラフィック量(MB/s)等の数値を得ます。

殆どの場合は処理回数が増えると、負荷量も線形に増加します。実運用において数万回/minの処理が行われる思っているなら、単純に数百回/minで計測した数値の100倍の負荷量に耐えられるハードウェアを選定すれば良いわけです。

ハードウェアの理論限界に対しての負荷量、負荷率が低い場合には、負荷量が上昇しても応答速度は殆ど低下しません。負荷率が一定レベルを超えると指数級数的に応答速度が低下します。これは必要なハードウェアリソースを使いたいその瞬間に、他の処理で使われていて使えない、コリジョンが発生する為です。これを踏まえて、CPUやメモリなら80%、ストレージやネットワークなら30%程度の負荷率を超えないように設定していれば、応答速度の低下を許容範囲におさめられるでしょう。

もちろん一度測定してしまえば、処理内容が同じなら流用する事もできます。即座に答えられるエンジニアは過去に似たような条件で実運用したデータを持っているか、あるいは計測した経験があるだけです。

特に実行環境がクラウドの場合には容易に試すことが出来るのですから、机上であれこれ考えるよりも、さっさと試した方が早いですよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です