キャッシュによる高速化とCPU使用率:Infinio Accelerator


Infinio Acceleratorのようなキャッシュによる高速化製品を導入後、お客様から以下のようなご質問をいただくことがあります。

「キャッシュ製品をインストール後、CPU消費量が増えた。これは普通ですか?なぜですか?」

キャッシュによる高速化でCPUが増えることは一般的なことです。それには以下のような理由があります。

1.キャッシュにリクエストされたブロックが含まれていればホストはディスクからの応答を待つ必要がなくなる

一般的なアプリケーションはディスクからデータブロックをリクエストし、それが返ってくるのを待った後に処理を行います。ディスクキャッシュを使用するとこの待機時間が無くなり、より多くの処理を実施できるようになります。

これは、薪割りのように例えることができます。薪を割るためには、まず薪とする木材を取りに歩き、その薪を土台に置き、斧で割り、それが終わると新たな木材を取りに行きます。このときに木材置き場と薪を割る土台までの距離はどれくらいか、取りに行くためにどれだけの時間歩いているのかで生産性は変わり、歩く時間を大幅に減らす、またはなくすことができれば、薪を割ることのみに集中でき、生産性は向上します。

ヒット率の高いキャッシュは、土台の隣に作った木材置き場のようなものです。わざわざ置き場までいかなくとも、薪を作ることができます。I/Oリクエストがストレージから返ってくるのを待つことなく、CPUがより多くの処理を実行できるようになります。

2.少量ながらもキャッシュはCPUを必要としているため、CPU使用率が増加

コンピュータリソースは限りがあり、常にトレードオフです。キャッシュがインストールされるとRAMとCPUを使用してストレージI/Oを大幅に高速化します。キャッシュは、起動時に最も多くCPUを使用します。これはキャッシュの「ウォーミング」によるもです。ストレージからのブロックを取得し、計算処理後、それをキャッシュに保存します。一度キャッシュに保存されたデータブロックをリクエストされた際のCPU消費は通常のストレージへのリクエストとほぼ同程度であるため、ウォーミングが完了すればキャッシュによるCPU消費は無視できます。

また、Infinioは利用可能な状態でのみCPUリソースを使用するよう構築されています。もっともCPU消費が高くなるこのウォーミング時にはCPU消費が飽和しないようにその使用量を制限します。さらにInfinioの場合、コンテンツベースのキャッシュで重複排除してデータブロックをロードするため、キャッシュヒット率が高く、再ロードによるCPU消費を防ぐことができます。

3.共有ストレージの高速化によるCPU使用率の増加

共有ストレージに複数のサーバが接続されている環境の場合、キャッシュが共有ストレージへのリクエストをオフロードするとストレージの負荷は軽減されます。これにより、共有ストレージは別のリクエストに対してリソースを使用することが可能になり、レスポンスが向上します。その結果、CPUもより多くの処理を実施でき、消費量が増加します。

このようなケースは共有ストレージが、高速化以前に既に過負荷であるような場合に発生するものであり、共有ストレージへのリクエストをオフロードできるというキャッシュのメリットの1つでもあります。

まとめ

このように、高速化後のCPU消費量の増加は、高速化した環境がより多くの処理を行えるようになったことが原因であり、これは基本的に喜ぶべきことです。また、2番目のようにキャッシュにデータをロードするための処理でCPUを消費することもありますがこれ自体の消費量は微々たるものであり、Infinioであればコンテンツベースのキャッシュで、そのロード回数も少なくできます。

Infinio Acceleratorに興味をお持ちいただけたなら是非、評価版をお試しください。

Infinio Acceleratorはインストール、アンインストール、高速化の有効化、無効化など、どの場合もダウンタイムなく実施でき、運用を変えることなく、その効果をお試しいただけます。

関連トピックス

コメントを残す

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

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください