以下のサイトに20回ほどリクエストを投げて

平均した時間が以下になります。
PHPのバージョンはすべて一緒なのですが
ab -n 20 -c 1 http://aaaaa.com/bbb/
※URLはダミーです。

test01サーバ 32bit Fedora 130.333
test02サーバ 64bit Fedora 403.695
test03サーバ 64bit Fedora 363.263

処理時間が32bitの方が数倍早いです。
eAcceleratorやZend Optimizerは特にチューニングはしてないのですが
32bitと64bitで性能の差というのは存在するのでしょうか?

バージョンは以下になります。
全部共通のバージョンです。
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/03/09 19:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント35pt

32ビットと64ビットの差と考える前に、以下の条件の違いをご確認ください。


  1. CPUの違い(メーカー、クロック数、キャッシュサイズ、等々)
  2. 物理メモリ量の違い
  3. サーバの形態の違い(専有サーバ/共有サーバ/仮想サーバ)
  4. ネットワーク構成の違い
id:hopefully

1. CPUの違い(メーカー、クロック数、キャッシュサイズ、等々)

  →これは違いますね。

test01サーバ Intel(R) Xeon(TM) CPU 2.80GHz Xeon 2way 2発

test02サーバ Intel(R) Pentium(R) 4 CPU 3.60GHz

test03サーバ Intel(R) Xeon(R) CPU X5355 @ 2.66GHz

2. 物理メモリ量の違い

→ちょっとまだ不明です。

3. サーバの形態の違い(専有サーバ/共有サーバ/仮想サーバ)

全部専有です。

4. ネットワーク構成の違い

同じネットワーク上で実行したので問題はないと思ってます。

2009/03/02 22:57:43
id:hijk05 No.2

回答回数1307ベストアンサー獲得回数23

ポイント35pt

たぶん、メモリーアクセスの早さが違うんだと思います。

メモリーバスが32bitと64bitになっていたら、速度差がでると思います。

  • id:koujirou6218
    経験での回答ですのでコメントにて。
    各サーバで計測した時間は平均値でしょうか?
    平均値でなければ平均値をお願いします。

    まず64bitで遅い原因は様々ですが、代表的な原因はハードウェアのドライバーが対応していない。
    特にHDDが原因となることが殆どです。

    リクエストとは具体的にどのようなデータですか?
    Pingでしょうか?

    64bit Fedoraでよろしかったですね?
    アプリケーションが64bitに最適化されていない場合があります。
    単に64bitに対応させただけで、分散処理を考慮した構築になっていないのではないでしょうか。
    これらの多くを問題を差別化するためにHPLベンチマークをオススメします。
    http://www.netlib.org/benchmark/hpl/

    結論ですが、32bitよりも遅いのは何らかの問題が生じている可能性が高いです。
    しかし、ソフトウェア側の対応が進んでいないので劇的な高速化は見込めません。
    64bit デュアルコア程度であれば分散処理の能力は知れているのでクラスタ化とアプリケーションの対応で100%発揮できるものと思っています。
  • id:hopefully
    サーバの平均値になります。

    リクエストとは具体的にどのようなデータですか?
    HTTPでのアクセスですね。
    普通にHTMLを表示するようなリクエストです。
    PHPのプログラムを使って表示してます。

    64bit デュアルコア
    これは、64bit クアッドコアなんですよ。

  • id:fut573
    純粋な処理速度測定なら、リクエスト先はlocalのファイルの方がいいんじゃないでしょうか?
    外部サーバーへのリクエストですと、通信時間やリクエスト先のサーバーの処理時間がノイズになります。
  • id:pahoo
    ちょっと自信がないのでコメント欄にて――

    実行環境が Apache + PHP の組合せだとすると、Zend を入れたとしても、シングルスレッドで動いているのではないかと思います。とすると、マルチコアのメリットは出にくいのではないかと。

    それから、test01サーバの Xeon のナンバーは分かりませんか?
    クロック数の違いだけでは、test01 と test03 サーバに2倍以上の差が開くことは考えにくいです。何か他に原因がありそうです。たとえば、メモリが足りなくて頻繁にページングが起きているとか。
    test02 と test03 の差は、Pentium4 と Xeon の能力差ということで整理がつくと思います。

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

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

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

回答リクエストを送信したユーザーはいません