あるデュアルコアマシン(Core2duoやCore2Quad)で

Linux(CentOS5.1)を導入し、Apache2系、PHP5系を使用しています。

topコマンドでCPU毎の使用率を出してみると
CPU0の使用率とCPU1の使用率がまったく違います。
(CPU1はほんの数パーセントだが、CPU0は数十パーセント)。

このあたり全然気にせず使っていましたが、
もしかして、ApacheやPHPってシングルコアしか使わないのでしょうか。
それとも別途コンパイルオプションで指定するのでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/07/06 16:51:32
  • 終了:2009/07/13 16:55:02

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402009/07/06 17:12:38

ポイント35pt

もしかして、ApacheやPHPってシングルコアしか使わないのでしょうか。

prefork の場合、1プロセスあたり1コアしか使えない。

これは他のアプリケーションでも同様。

ただし、Apache の場合、多数のプロセスが起動することがほとんどなので

結果的に2コア有ればある程度分散して利用される。


Linux の SMP 実装では 基本的に各CPUの優先度に違いがないので、

片方のコアだけで処理が済んでしまっているか、処理を必要とするプロセスが1つしか存在しないかのどちらかが考えられる。

人力検索はてな

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/07/06 17:37:31

ポイント35pt

まずPHP5ですが、基本的にシングルスレッドです。同時に複数のタスクが立ち上がっていなければ、片方のコアしか使いません。


Apache2の方はマルチスレッドになっていますので、OSとライブラリがマルチコアに対応しており、複数スレッドが立ち上がるようなリクエストをしていれば、両方のコアが使われるはずです。


最後にCentOSですが、4.4.0でマルチコアに対応しています。

ところが、「マルチコア時代のロードアベレージの見方」を見ると、カーネル 2.6.18/19 では1つのコアに負荷が偏るようです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません