快还要更快,让PHP 7 运行更加神速

导读 PHP 7 比5.x 快上很多,即使只有单纯的版本升级就已经很有感,不过大家还是希望它变得越来越快,这时再做些小调整就会更有fu,Let‘s try it!

事前准备

说到PHP 7,那一定跑不了LAMP 或是LEMP,请先准备好底层服务的安装。

以前我们要让PHP加快处理速度,通常会配合APCeAcceleratorXCache的任一个来使用;现在忘了它们吧,就从现在起开始改用OPcache来实作,它是PHP 7开发者之一的惠新宸协力开发的PHP支援模组。 这次实作以LEMP架构为主,套件库是用Remi的版本,别忘了要依各位实际的环境来修改路径及设定值。

开始设定

安装OPcache套件。

sudo yum -y install php70-php-opcache

编辑主设定档。

sudo vi /etc/opt/remi/php70/php.ini

加上这些参数。

zend_extension=opcache.so opcache.enable=1 opcache.enable_cli=1opcache.file_cache=/ home/opcache opcache.huge_code_pages=1

启动Huge Pages,它是一种大型暂存分页机制,详细说明请参阅The Linux Kernel Archives - Huge Pages,在我的机器上测试结果改到512就够了。

sudo sysctl -w vm.nr_hugepages=512

建立OPcache专用目录。

sudo mkdir /home/opcache sudo chown nginx:nginx /home/opcache

重新启动PHP-FPM,这边就会看到OPcache已经启动了。

sudo systemctl restart php70-php-fpm

另外,我们还可以加装memcached,顾名思义它就是使用记忆体来当快取,加速系统的运作。

sudo yum -y install memcached

编辑主程式档。

sudo vi /etc/sysconfig/memcached

参数不多,请依需求修改。

PORT - 端口,别忘了开防火墙。
MAXCONN - 总连接数。
CACHESIZE - 内存使用量,单位是KB。
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="1024"
OPTIONS=""

启动memcached,并让它在开机后自动启动。

sudo systemctl restart memcached sudo systemctl enable memcached

开放防 火墙

sudo firewall-cmd --permanent --zone=public --add-port=11211/tcp

再安装memcached for PHP的支援模组。

sudo yum -y install php70-php-pecl-memcached

重新启动PHP-FPM。

sudo systemctl restart php70-php-fpm

最后看一下phpinfo(); 函数的显示结果,出现memcached 的段落就代表成功了。

实测结果

这边直接引用对岸的网友的资料,在OneAPM -使用PHP 7给Web应用加速这篇文章里,他测试了Wordpress 4.1.1、Drupal 8、phpBB 3.1.3、MediaWiki 1.24.1、Opencart 2.0.2.0 、WardrobeCMS 1.2.0、Geeklog 2.1.0、Magento 1.9.1.1、Traq 3.5.2、Cachet、Moodle 2.9-dev、ZenCart 1.5.4等12种套件的比较结果。 以Wordpress 4.1.1为例,我们可以看到PHP 7比起5.3 ~ 5.6的读取速度(Read)及延迟时间(Latency)都有大幅改善。

参考资料

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-10-15 14:36:43

快还要更快,让PHP 7 运行更加神速的相关文章

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

让python代码运行的更快

原文地址:http://infiniteloop.in/blog/quick-python-performance-optimization-part-i/ 往往小的改变却能带来大的性能提升, 下面说下python中的几点性能优化. 1.使用timeit模块 2.减少函数的调用次数 3.使用xrange代替range 4.''.join()代替+,+= 5.while 1 代替 while True 6.列表解析>for循环>while循环 7.使用局部变量 8.创建生成器和使用yield 9

听说,你想让自己的Go程序运行的更快?

到现在为止,我已经忘记了我在写什么,但我确定这篇文章是关于Go语言的.这主要是一篇,关于运行速度,而不是开发速度的文章--这两种速度是有区别的. 我曾经和很多聪明的人一起工作.我们很多人都对性能问题很痴迷,我们之前所做的是尝试逼近能够预期的(性能)的极限.应用引擎有一些非常严格的性能要求,所以我们才会做出改变.自从使用了Go语言之后,我们已经学习到了很多提升性能以及让Go在系统编程中正常运转的方法. Go的简单和原生并发使其成为一门非常有吸引力的后端开发语言,但更大的问题是它如何应对延迟敏感的应

让Python代码更快运行的 5 种方法

不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

如何让程序更快的运行

1.客观上说程序运行必会收到硬件资源如CPU计算能力.IO读写速度.网络带宽和软件资源如sockets连接数.数据库连接数的限制,为了更快的让程序运行尽早完成它要完成的任务就要突破这些限制.突破硬件资源的限制的方法是将程序的任务分解到多台硬件组成的集群上来执行:突破软件资源的限制可通过资源池的方式来解决. 2.为了更快的提升计算资源的使用效率,电脑系统中运行最快的CPU采用时间片轮换的方式来执行多个任务,如果一个任务还没执行完就要保存当前任务的上下文,下次再执行时再加载这个任务的上下文,这个过程

让你的Python代码更快运行的 5 种方法

https://cloud.tencent.com/developer/news/354761 不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之 处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python 很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScrip

CSS 和 JS 动画哪个更快

基于Javascript的动画暗中同CSS过渡效果一样,甚至更加快,这怎么可能呢?而Adobe和Google持续发布的富媒体移动网站的性能可媲美本地应用,这又怎么可能呢? 本文逐一遍览了基于Javascript的DOM动画库,如Velocity.js和GSAP,看其是如何比jQuery和CSS动画效果更具性能的. jQuery 让我们先从基础的开始: JavaScript 和 jQuery 被错误的混为一谈了. JavaScript 动画是很快的. jQuery 把它放慢了下来.为什么?因为 —

比容器更轻更快的虚拟机

尽管容器技术在今天越来越被人接受,但是安全性依然是一个绕不开的问题,由于容器采用的是共享内核外加 cgroups 和 namespaces 等黑魔法的方式进行隔离注定了会有很多路径的 bug 导致隔离性问题,安全隐患依然存在.而不使用虚拟机的原因不外乎虚拟机启动太慢,额外开销太高,性能由于多了一层会下降.面对容器和虚拟机这两个极端,容器一方想把容器做的隔离性更好,虚拟化方面想把虚拟机做的更轻.结果, neclab 的一群人居然做到把虚拟机的启动速度做的比 Docker 还快,内存开销比 Dock

更快学习 JS 的 6 个简单思维技巧

当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战: 有些概念容易混淆,特别是当你学习过其他语言的时候. 很难找到学习的时间(有时候是动力). 一旦当你理解了一些东西的时候,却很容易再一次忘记. 可以使用的工具甚多且经常变化,所以不知道从哪里开始入手. 幸运的是,这些挑战最终都可以被战胜.在这篇文章里,我将介绍 6 个思维技巧来帮你更快的学习 JavaScript ,让你成为一个更快乐更多产的程序员. 1.不要让将来的决定阻止你进步 对于很多学习 JavaSc