5

継続的に実行されるマルチプロセス PHP (CLI) アプリケーションがあります。もともと、PHP の標準 Ubuntu 10.04 パッケージ ビルド (5.3.2-1ubuntu4.18) を使用していました。ただし、各プロセスで使用されるメモリの量によって、特定の時間に実行できるフォークの数が制限されるため、メモリ使用量を最適化しようとしています (使用可能なメモリ量が限られているため)。preinheimerのアドバイスに従って、PHP を再コンパイルし、すべての拡張機能を無効にしてから、アプリケーションに必要なもの (mysql、curl、pcntl、posix、および json) のみを再度有効にしました。私の構成コマンドは次のとおりです。

'./configure'  '--prefix=/usr/local/phpbare' '--with-config-file-path=/etc \
/php5/clibare' '--disable-all' '--with-mysql=mysqlnd' '--with-curl' \
'--enable-pcntl' '--enable-posix' '--enable-json'

この新しい「ベアボーン」ビルドにより、アプリケーションを実行できましたが、驚いたことに、実行中のプロセスを を使用して表示するtopと、以前とほぼ同じ量のメモリが使用され、(さらに問題が大きくなります)、膨大な量の CPU 時間が使用されます。 (top によって報告される量が通常 0 ~ 1% になる前に、CPU の 15 ~ 20% になることがよくあります)。より少ないコンピューティングリソースを使用するようにスクリプトを最適化するphp拡張機能が欠落している可能性はありますか??? または、Ubuntu ビルドはおそらく Ubuntu アーキテクチャ用に最適化されていますが、私のカスタム ビルドにはこれらの最適化が欠けていますか? もしそうなら、Ubuntuビルドでどの最適化が使用されているかをどのように見つけて、「ベアボーン」ビルドでそれらを再作成できますか?

からの出力のスニペットを次に示しますps aux | grep php。これは、以下のコメントで私の主張を示すために使用されます。

root  12952  0.3  0.9  33176  4968 pts/2    S    Feb14  11:15 s.php 5
root  12955  0.3  0.9  32664  4732 pts/2    S    Feb14  11:12 s.php 5
root  12958  0.3  0.9  32664  4796 pts/2    S    Feb14  10:51 s.php 5
root  12961  0.3  0.9  32740  4752 pts/2    S    Feb14  11:07 s.php 5
root  14162  0.3  0.9  33000  4904 pts/2    S    Feb14  10:51 s.php 5
root  14165  0.3  1.0  33256  5340 pts/2    S    Feb14  10:56 s.php 5
root  23426  9.5  1.1  13492  6040 pts/2    S    Feb15 151:38 s.php 1 
4

1 に答える 1

-1

オペコード キャッシュにより、PHP が数倍速くなります。APCなどの拡張機能がインストールされていることを確認します。

phpinfo()また、標準パッケージをチェックconfigureして、使用されているオプションを確認し、同じオプションで再コンパイルして、それが構成の問題なのか、別のコンパイラやライブラリなど、他の何かの問題なのかをチェックすることもできます。

于 2013-02-17T19:21:02.587 に答える