人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

あるデュアルコアマシン(Core2duoやCore2Quad)で
Linux(CentOS5.1)を導入し、Apache2系、PHP5系を使用しています。

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

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


●質問者: osamuaa
●カテゴリ:コンピュータ
✍キーワード:Apache Core2Duo Core2Quad CPU E2系
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

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

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

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

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

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


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

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

人力検索はてな


2 ● pahoo
●35ポイント

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


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


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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ