ワークロードとは
ワークロードとは、一般的に「仕事量」や「作業負荷」を意味する言葉です。情報技術の分野では、
コンピュータやシステムにかかる処理の負荷の大きさを指すことが多く、システムがどれだけの処理を抱えているかを示す指標として用いられます。ワークロードは、システム全体のパフォーマンスを評価する上で重要な要素であり、適切に管理することで、システムの安定稼働や効率的な運用につながります。
ロードアベレージ
かつて
UNIXオペレーティングシステムでは、ワークロードの指標としてロードアベレージが採用されていました。これは、実行中および実行待ちのプロセスの数を数えることで、システムの負荷を推し量るというものです。当時の計算機資源は限られていたため、ロードアベレージはシステム全体の負荷を把握する上で有効な指標でした。しかし、ロードアベレージは厳密にはワークロードそのものではなく、実行待ちの理由がページフォールトであったり、I/O待ちである可能性も考慮する必要があります。そのため、ロードアベレージはシステム全体の負荷を把握する上では役立つものの、個々のワークロードの軽重を示す指標としては不十分です。
マイクロプロセッサの性能向上やI/Oサブシステムのインテリジェント化が進むにつれて、ロードアベレージだけではワークロードを正確に推し量ることが困難になりました。特に、現代のシステムでは、
CPU利用率の方がワークロードをより正確に表す指標として重要視されています。
CPU利用率(
CPU負荷率、
CPU効率とも呼ばれる)は、
CPUが実際に処理を行っている時間の割合を示す指標です。アイドル時間を消費するプロセス以外の、実行時間の比率として算出されます。Windowsではタスクマネージャーで、
UNIXではtopコマンドなどで確認できます。この数値は、
CPUが計算資源としてどれだけの能力を発揮しているかを正確に示し、I/Oサブシステムで消費された時間は含まれません。
現在では、
CPU利用率は、ワークロード、特に実行中のプログラムが
CPU資源をどれだけ効率的に使用しているかを評価するための重要な指標とされています。
CPU利用率は、
コンピュータシステムへの投資に対する実績を示すものであり、例えば、I/Oアクセス中に他の処理を並列して進めるマルチスレッドプログラミングは、
CPUの利用効率を高め、その結果が
CPU利用率に反映されます。逆に、効率の悪いプログラムは
CPU利用率が低く、改善の必要性が示唆されます。
近年では、マルチプロセッサシステムが一般的になり、並列性が低いソフトウェア設計は投資の無駄となるケースが増えています。例えば、ロードアベレージが1で、見かけ上プロセッサに対して100%の資源要求がある場合でも、デュアルコアプロセッサでは
CPU利用率が50%しか示さず、残りの50%が無駄になっていることが分かります。このような問題を解決するために、多数のプロセスを同時に実行し、
CPUの無駄な時間を埋めるという戦略が有効です。特に、Webサーバーなどのトランザクションベースのアプリケーションでは、この戦略が効果を発揮します。また、このような利用に特化したプロセッサ(Sunのナイアガラアーキテクチャなど)も存在します。
まとめ
ワークロードは、システムが抱える処理負荷を示す重要な概念です。かつてはロードアベレージがワークロードの指標として使われていましたが、現在では
CPU利用率の方がより正確な指標として認識されています。
CPU利用率を最適化することは、システム全体のパフォーマンスを向上させる上で不可欠です。効率的なプログラム設計や並列処理の活用などによって、
CPU利用率を高め、計算機資源を最大限に活用することが重要です。
関連項目
*
サーバロードバランス