動作周波数はXeonプロセッサで3.06GHz,Xeon プロセッサ MPで2.0GHzとなっており,さらに,Xeonプロセッサ MPからは2Mバイトの内蔵3次キャッシュ・メモリーが搭載されるなど,技術革新が著しい。そのため,一般的にはCPUがボトルネックになる以前に,他のコンポーネントが限界に達してしまうケースがほとんどである。
しかし,トランザクション処理が頻繁に発生する以下のような用途では,CPUがボトルネックになる可能性がある。
● 統合業務システム(ERPなど)
● データ解析(データマイニング,データ・ウエアハウスなど)
● 暗号化処理(SSLなど)
● 高速演算系(並列クラスタ・システムなど)
こうした用途に用いる場合は,搭載するCPU数やそのキャッシュ容量に十分な注意を払う必要がある。そこで,CPUの詳細情報や負荷状況を調べ,その結果に応じて適切なCPU数やキャッシュ容量を割り出す方法を紹介する。
CPUの詳細情報や負荷状況を調べる
図1●/proc/cpuinfoファイルの内容 [画像のクリックで拡大表示] |
CPUの詳細情報や負荷状況を調べるには,次のようにすればよい。
(1)/proc/cpuinfo
モデル名,周波数,キャッシュ容量など,CPU自身の詳細情報を参照できる。例えば,2.80GHz動作のXeonプロセッサを2基搭載したサーバーの場合,図1のような情報が取得できる。この例では,CPUだけでなくカーネルもHyper-Threadingに対応したバージョンを使用したため,CPU数2個に対して,Linuxからはその倍の4個に見えている。
(2)vmstat
元々は仮想メモリーの統計情報を取得するためコマンドだが,CPU関連の統計情報も取得できる(図2)。CPUの負荷状況は以下に示した個所を見るとよい。
図2●vmstatの実行結果 「vmstat 間隔(秒) 回数」で一定間隔,一定回数の情報を取得できる。 [画像のクリックで拡大表示] |
●system
in:一秒当たりの割り込み回数(クロック割り込みも含む)
cs:一秒当たりのコンテキスト・スイッチ回数
●cpu:CPUの総時間に対する割合(%)
us:ユーザー時間
sy:システム時間
id:アイドル時間
コンテキスト・スイッチとは,あるプログラム(プロセスやスレッド)から別のプログラムにCPUの処理を切り替えることである。同時に複数のプログラムを実行している場合,CPUはこれらを短時間で切り替えながら処理を進めている。切り替え処理によってオーバーヘッドが発生するので,コンテキスト・スイッチを最小限に抑えることが望まれる。
(3)mpstat
SMP(対称型マルチプロセッサ)構成の場合は,mpstatを使えばCPUごとの統計情報を取得可能だ(図3)。取得した情報の見方は表1の通り。
|
図3●mpstatの実行結果 「mpstat -P ALL 間隔 回数」で一定間隔,一定回数の情報を取得できる。 |
表1●mpstatの表示内容 [画像のクリックで拡大表示] |