文档章节

php7达到最高性能的几个Tips

爬墙
 爬墙
发布于 2016/11/20 10:44
字数 559
阅读 57
收藏 0

#参考:http://www.laruence.com/2015/12/04/3086.html

  1. 开启opcache,默认php7没有开启,在编译安装php7的的时候加上 --enable-opcache,会在扩展文件夹内生成opcache.so,然后在ini的配置文件夹内加上opcache.ini,内容如下:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

重启php-fpm后可以看到Zend OPcache设置

  1. 使用高版本编译安装php7,使用GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升,centos默认的gcc只有4.4左右,需要编译安装最新版本的gcc,gcc手工编译参考:https://teddysun.com/432.html
#如果是在 x86_64 系统下编译的话,还需要安装 libgcc.i686 glibc-devel.i686 才行
yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686
#先到  http://mirrors.ustc.edu.cn/gnu/gcc/ 看最新版本是多少,然后下载
cd /usr/local/src
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
tar xf gcc-4.9.4.tar.bz2
cd gcc-4.9.4
./contrib/download_prerequisites
mkdir gcc-build-4.9.4
cd gcc-build-4.9.4
../configure --prefix=/usr
#为了避免安装后系统里出现多个版本的 GCC,这里直接将编译安装的目录指定为 /usr,如果不指定 –prefix,则会默认安装到 /usr/local 下
#整个编译过程需要很长时间,加入利用的cpu数量会加快很多
cpuNum=`grep processor /proc/cpuinfo | wc -l`
make -j $cpuNum && make install
#安装完后,查看版本
gcc -v

通过上述方式安装了gcc后,请慎用 yum update 和通过 yum 来升级 GCC

  1. 开启huge_code_pages
sysctl vm.nr_hugepages=512
#在opcache设置加入
 opcache.huge_code_pages=1
  1. 加入Opcache file cache
#在opcache设置加入
opcache.file_cache=/tmp
  1. PGO 也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息. 如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.
#首先在编译PHP之前时候首先执行:
make prof-gen
sapi/cgi/php-cgi -T 100 /data/wwwroot/wordpress/web/index.php >/dev/null
make prof-clean
make prof-use && make install

这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.

© 著作权归作者所有

共有 人打赏支持
爬墙
粉丝 11
博文 357
码字总数 87458
作品 0
美国
私信 提问
在Qcon 2015 北京上的演讲PPT – PHP7

06 May 15 在Qcon 2015 北京上的演讲PPT – PHP7 作者: Laruence( ) 本文地址: http://www.laruence.com/2015/05/06/3007.html 转载请注明出处 不少同学对于PHP7, 还是了解的不多, 这次在Qco...

Laruence
2017/10/21
0
0
解决Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory报错

前几日看到鸟哥介绍的 《让你的PHP7更快之Hugepage》, 于是想试试手给服务器加上,参照格式安装好扩展,调整好配置文件,然后重启php-fpm,结果启动一直报Zend OPcache hugecode_pages: mm...

kaixin_code
2018/10/28
0
0
深入理解PHP7内核之Reference

08 Apr 18 深入理解PHP7内核之Reference 作者: Laruence( ) 本文地址: http://www.laruence.com/2018/04/08/3179.html 转载请注明出处 问题 上一章说过引用(REFERENCE)在PHP5的时候是一个标志...

Laruence
2018/06/26
0
0
PHP7优化提高性能的几个Tips

PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下. 1. Opcache 记得...

English0523
2015/12/29
0
0
探索PHP7(一)--性能

在2015年12月2号,鸟哥的在开源中国发布的新闻写在 PHP 7 发布之际一些话,小编意识到从8月份发布第一个公测版到现在经过了将近4个月的等待PHP7正式版本终于发布了,所以果断装上了一个玩玩,确实...

喵了_个咪
2015/12/06
373
2

没有更多内容

加载失败,请刷新页面

加载更多

TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
24分钟前
2
0
从拼多多优惠券事件看到的一些反思

本文由云+社区发表 作者:颜国平 摘要:最近几年,电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯,即将到来的“ 购物狂欢...

腾讯云加社区
25分钟前
4
0
记录一次BUG

1: 请求注册页面时生成一个UUID, 并且将UUID隐藏在页面中并且添加到session中去。 2: 发送短信时获取手机号和UUID,将两者发送至服务器 3: 先判断UUID和session中UUID是否一致。 不一致就...

专业写BUG的程序员
30分钟前
1
0
阿里云漏洞提示:phpMyAdmin <=4.8.1 checkPageValidity函数缺陷可导致GETSHELL

如题: phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导致GETSHELL 即:checkPageValidity函数对外部输入过滤不严,可导致本地包含任意文件。进一步地攻击者可通过注入代码到特定文件...

408582708
30分钟前
1
0
PyTorch可视化理解卷积神经网络

摘要: 神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦! 如今,机器已经能...

阿里云官方博客
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部