【Linux】キャパシティープランニング

最終更新日 2024年10月24日

キャパシティープランニング

キャパシティープランニングの意味

キャパシティープランニングとは、コンピュータのシステムリソース(CPU、メモリ、ディスク、ネットワーク帯域など)が
将来的に不足しないようにするための設計技法のことである。

キャパシティープランニングが必要な理由

キャパシティープランニングは、コンピュータシステムを導入する際、出来るだけコストを抑えつつ、
リソース(CPU、メモリ、ディスク、ネットワーク帯域など)が、将来的にも不足しないように
するために行います。

もし、キャパシティープランニングを行わずに、インフラ環境を構築すると2つの問題が生じます。

1つ目は、システムに必要なリソースが足りず、コンピュータシステムを使用できなくなることです。

コンピュータシステムを導入する際、どのくらいのリソースが必要になるのか予測し、
予測したリソースを満たす環境を構築しなければ、当然、コンピュータシステムを
使用できなくなる可能性があります。

例えば、WEBサーバーを構築する場合を考えてみましょう。

WEBサーバーを構築する際、毎日100人くらいのアクセスが出来るくらいの環境を構築したとします。
しかし、実際には毎日1000人くらいのアクセスがありました。
こうなると、当然WEBサーバーの処理が追い付かずに、利用者がWEBサーバーにアクセスできなく
なる可能性があります。

このように、キャパシティープランニングで、どのくらいのリソースが必要になるか
予め予測・調査しなければ、せっかく構築した環境で、システムが使用できなくなってしまいます。

2つ目は、無駄なコストが発生してしまうことです。

キャパシティープランニングで、どのくらいのリソースが必要になるか予測せずに、
システムを構築してしまうと、余分なスペックの環境を構築してしまう可能性があります。
導入したコンピュータシステムを維持するには、当然コストが発生します。
そのため、過剰な分だけ、余分なコストが発生してしまいます。

先ほどと同様にWEBサーバーを構築する例で考えてみましょう。

WEBサーバーを構築する際、毎日1000人くらいのアクセスが出来るくらいの環境を構築したとします。
しかし、実際には毎日100人くらいのアクセスがありました。
こうなると、WEBサーバーの処理は問題なくできますが、本当はもっとスペックの低いサーバーで
良かったかもしれません。
もっとスペックの低いサーバーだったらもっと導入時のコストを抑えられたはずです。

このように、キャパシティープランニングで、どのくらいのリソースが必要になるか
予測しなければ、余計なコストを払うことになっています可能性があります。

キャパシティープランニングのやり方

キャパシティープランニングの流れは、システムが最大どれだけのリソースを必要とするか測定し、
その枠内に収まるようなリソースを見積もるという順序で行います。


しかし、システムが必要とするリソースを予め見積もることは非常に難しいです。
なぜなら、平常時には問題なくても、ピーク時に大幅にシステムリソースが足りなくなったり、
見積もったリソースで環境を構築した後に、システムの負荷が増加し、
リソース不足が平常化してしまうなどのことがあるからです。

しかし、システム上で動作する、それぞれのプログラムが、どれだけCPUやメモリ、I・O(ファイル読み書きなどのこと)
が発生するのか、あらかじめ実際と同じシステム環境を作って計測し、
将来ある程度負荷が増えた時でも耐えれられるようにバッファを持たせた環境を構築することで
リソース不足をある程度防ぐことが出来ます。


キャパシティープランニングを行う際、システムリソースの中では、CPU利用率、メモリ利用率が
とりわけ重要になります。

キャパシティープランニング最適化

パフォーマンスチューニング

キャパシティープランニングとともに重要になるのが、パフォーマンスチューニングです。

パフォーマンスチューニングとは、効率よくシステム上のリソースを使えるようにするために、
様々な設定を調整することで、性能の最適化を行うことです。

このパフォーマンスチューニングを行うためにも、リソースの使用状況を把握することが必要になります。