与默认的Ubuntu构建相比,为什么使用大量CPU重新编译PHP?

我有一个连续运行的多进程 PHP(CLI)应用程序.最初,我使用的是PHP的标准Ubuntu 10.04包构建(5.3.2-1ubuntu4.18).但是,我正在尝试优化内存使用量,因为每个进程使用的内存量限制了我可以在任何给定时间运行的分叉数(因为我有可用的内存量有限).按照 preinheimer给出的建议,我重新编译PHP,禁用所有扩展,然后只重新启用我的应用程序所需的那些(MysqL,curl,pcntl,posix和json).我的configure命令是:

'./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

解决方法

操作码缓存使PHP快几倍.确保安装了 APC等扩展.

您还可以检查标准软件包的PHPinfo()以查看它使用的配置选项,并使用相同的选项重新编译,以检查这是配置问题还是其他内容,如不同的编译器或库.

相关文章

ubuntu退出redis的示例:指定配置文件方式启动源码redis:roo...
ubuntu中mysql改密码忘了的解决方法:1.在终端中切换到root权...
ubuntu安装mysql失败的解决方法原因:可能是原有的MySQL还有...
使用centos和ubuntu建站的区别有以下几点1.CentOS是Linux发行...
ubuntu图形界面和字符界面切换的方法:可以通过快捷键CTRL+A...
ubuntu中重启mysql失败的解决方法1.首先,在ubuntu命令行中,...