2012-04-19 2 views
3

CPU使用率が高いため、サーバーの動作が遅くなります。私は、高いCPU使用率の原因をいくつかの原因で追跡しました。多くの正規表現操作を使用するためにサーバーを最適化する方法

  • 多くの正規表現の機能がデータセットにあります。
  • strpos、substr操作です。
  • 基本的な数学演算のためのループスルー配列。

すべてのこれらの操作は私のウェブサイト上の1件の検索のために必要とされます。訪問者が検索を行うと、CPUは100%になります。必要なので、私はこれらの操作について何もできません。

私の質問:操作は上記のほぼすべてのCPU使用率の原因であることを

  • は何なのhttpd.confやphp.iniの特定などの設定ファイルを設定するための最良の方法だろうか?
  • 上記の操作がほぼすべてのCPU使用率の原因である場合、サーバーをアップグレードする最も良い方法は何ですか?

UPDATE 1:

動作の例は以下のとおりです。

preg_match_all('/ValuesBreakdown_\d+_[A-Z]+_out.push\(([\d.,]+)/',$content,$matches); 

この単一の操作はCPUを大量に使用していませんが、それは操作という、この種の数が多いです加算する。

+1

あなたはそれらのすべてがそのようであることが_REQUIRED_ある状況について詳しく説明することはできますか? – Blake

+1

あなたは多分PHPファイルを保持し、結果をキャッシュするopcodeキャッシュを使って負荷を減らすことができます。 – Hajo

+0

これらの操作はすべて、私のウェブサイトでの1回の検索に必要です。私は一度に多数のウェブサイトから大量のデータを収集し、すべてのデータをチェックしてチェックする必要があります。 – BastiaanWW

答えて

0

パフォーマンスの問題に直面したとき、必ず原因は、あなたがそれだと思う本当にあることを確認してください。

私のアドバイスは、例えばXDebugの+ webgrindを使用して原因を確認する最初のものです。

あなたはおそらくパーフを向上させるために、あなたのコードのロジック・フローを変更することができるようになります。例えばあなたの代わりに一度だけの数回あなたのデータセットをループしていますか?アルゴリズムを改善できないのですか?など。毎回

は、あなたが実際にパフォーマーを改善することを自分自身に証明するためのXDebugを使用しています。

関連する問題