5

我有一个连续运行的多进程 PHP (CLI) 应用程序。最初,我使用的是 PHP (5.3.2-1ubuntu4.18) 的标准 Ubuntu 10.04 包构建。但是,我正在尝试优化内存使用,因为每个进程使用的内存量限制了我可以在任何给定时间运行的分叉数量(因为我的可用内存量是有限的)。按照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使用. (在 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 回答