<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Php7%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7</id>
	<title>Php7性能优化技巧 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Php7%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Php7%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7&amp;action=history"/>
	<updated>2026-04-17T17:16:27Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Php7%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7&amp;diff=813&amp;oldid=prev</id>
		<title>2020年4月1日 (三) 05:59 Evan</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Php7%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7&amp;diff=813&amp;oldid=prev"/>
		<updated>2020-04-01T05:59:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Php性能优化]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= start=&lt;br /&gt;
== 0. 我们的优化参数==&lt;br /&gt;
&amp;lt;pre&amp;gt;vi php-fpm.conf &lt;br /&gt;
pm = static&lt;br /&gt;
pm.max_children = 400&lt;br /&gt;
pm.max_requests = 5000&lt;br /&gt;
&lt;br /&gt;
request_terminate_timeout = 1&lt;br /&gt;
request_slowlog_timeout = 1 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Opcache ==&lt;br /&gt;
&lt;br /&gt;
编译时记得加上 &lt;br /&gt;
 --enable-opcache=yes&lt;br /&gt;
&lt;br /&gt;
phpinfo 查看 Zend OPcache &lt;br /&gt;
相关的配置还不够完善 有空 再看看  &lt;br /&gt;
[https://www.phpsong.com/1806.html php7安装opcache提升性能]&lt;br /&gt;
http://php.net/manual/zh/intro.opcache.php&lt;br /&gt;
&lt;br /&gt;
[https://www.youngjuning.com/php7-0-optimize-important.html (have Opcache 配置)PHP 7.0性能优化]&lt;br /&gt;
[http://www.cnblogs.com/HD/p/4554455.html PHP- 性能加速 - 开启opcache]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zend_extension=opcache.so&lt;br /&gt;
opcache.enable=1&lt;br /&gt;
opcache.enable_cli=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. 使用新的编译器==&lt;br /&gt;
&lt;br /&gt;
使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
因为centos6.8 gcc  4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 而 &lt;br /&gt;
cenots7 gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-11) &lt;br /&gt;
&lt;br /&gt;
所以建议php7 + centos7 才是最好的搭配&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. HugePage==&lt;br /&gt;
&lt;br /&gt;
我之前的文章也介绍过: [http://www.laruence.com/2015/10/02/3069.html  让你的PHP7更快之Hugepage] , 首先在系统中开启HugePages, 然后开启Opcache的huge_code_pages.&lt;br /&gt;
&lt;br /&gt;
以我的CentOS 6.5为例, 通过:&lt;br /&gt;
  sudo sysctl vm.nr_hugepages=512&lt;br /&gt;
&lt;br /&gt;
分配512个预留的大页内存:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; cat /proc/meminfo  | grep Huge&lt;br /&gt;
AnonHugePages:    106496 kB&lt;br /&gt;
HugePages_Total:     512&lt;br /&gt;
HugePages_Free:      504&lt;br /&gt;
HugePages_Rsvd:       27&lt;br /&gt;
HugePages_Surp:        0&lt;br /&gt;
Hugepagesize:       2048 kB&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
然后在php.ini中加入:&lt;br /&gt;
 opcache.huge_code_pages=1&lt;br /&gt;
&lt;br /&gt;
这样一来, PHP会把自身的text段, 以及内存分配中的huge都采用大内存页来保存, 减少TLB miss, 从而提高性能.&lt;br /&gt;
&lt;br /&gt;
==4. Opcache file cache==&lt;br /&gt;
开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.&lt;br /&gt;
在php.ini中加入:&lt;br /&gt;
 opcache.file_cache=/tmp&lt;br /&gt;
 #注意这个在freebsd11 + php7  会导致502 and 504&lt;br /&gt;
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.&lt;br /&gt;
&lt;br /&gt;
==5. PGO==&lt;br /&gt;
我之前的文章: [http://www.laruence.com/2015/06/19/3063.html 让你的PHP7更快(GCC PGO)]  也介绍过, 如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.&lt;br /&gt;
 &lt;br /&gt;
具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:&lt;br /&gt;
&lt;br /&gt;
 $ make prof-gen&lt;br /&gt;
然后用你的项目训练PHP, 比如对于Wordpress:&lt;br /&gt;
&lt;br /&gt;
 $ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php &amp;gt;/dev/null&lt;br /&gt;
也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.&lt;br /&gt;
&lt;br /&gt;
最后:&lt;br /&gt;
&lt;br /&gt;
 $ make prof-clean&lt;br /&gt;
 $ make prof-use &amp;amp;&amp;amp; make install&lt;br /&gt;
这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==后记==&lt;br /&gt;
一个php-cgi 5.3 进程，大概占用多少内存呢，大概是20MB(具体的要看你的php加载了多少模块)。可以通过pmap指令查看哪些地方占用了内存。所以，尽量不要加载不必要的php扩展模块，可以减少不必要的内存浪费。&lt;br /&gt;
&lt;br /&gt;
而php-fpm(php7) 程占用14M左右； ps :php5.6的大概是19M ;&lt;br /&gt;
&lt;br /&gt;
所以建议在打包时 能不要的模块尽量不要喽，虽然php哥都喜欢大而全 哈哈 &lt;br /&gt;
&lt;br /&gt;
php进程占用内存的大小，GB为单位&lt;br /&gt;
ps --no-headers -o rss -C php-fpm |awk &amp;#039;{ sum+=$1 } END { print (sum/1024/1024,&amp;quot;GB&amp;quot;) }&amp;#039;&lt;br /&gt;
4.12779 GB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[查看php-fpm内存占用命令]]&lt;br /&gt;
&lt;br /&gt;
==php7 on freebsd11==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
查看php 扩展目录&lt;br /&gt;
打开phpinfo 知道了 20151012 目录 ，然后 find 一下就知道在哪了 &lt;br /&gt;
root@freebsd # find  /  -name 20151012&lt;br /&gt;
/usr/local/lib/php/20151012&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=SEE ALSO=&lt;br /&gt;
[http://www.laruence.com/2015/12/04/3086.html 让PHP7达到最高性能的几个Tips]&lt;br /&gt;
&lt;br /&gt;
[http://www.laruence.com/2015/10/02/3069.html  让你的PHP7更快之Hugepage]&lt;br /&gt;
&lt;br /&gt;
[https://linux.cn/article-1537-1.html 谁贪占了我的系统资源 php-fpm]&lt;br /&gt;
&lt;br /&gt;
[[category:ops]][[category:php]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>