首页 » 网站推广 » 浮屠手动重启php技巧_WordPress速度优化最后一招用Opcache实现前后端全站加速

浮屠手动重启php技巧_WordPress速度优化最后一招用Opcache实现前后端全站加速

访客 2024-12-06 0

扫一扫用手机浏览

文章目录 [+]

加速wordpress

这个问题也曾经困扰我们团队良久,随着对WordPress理解的越来越深入,就会创造一些端倪,比如他的钩子加载机制、插件挂载机制、数据库表构造等等,它们被设计地太灵巧了,非常符合低代码建站者利用,但也因此丢失了很多性能。

浮屠手动重启php技巧_WordPress速度优化最后一招用Opcache实现前后端全站加速

关于WordPress访问速率的优化教程太多了,但多数都环绕着移除谷歌字体、安装缓存插件、优化数据库、压缩图片和静态脚本文件等常规手段。

浮屠手动重启php技巧_WordPress速度优化最后一招用Opcache实现前后端全站加速
(图片来自网络侵删)

个中最见效的实在是安装缓存插件,设置好之后,前台的访问速率会有巨大提升,不过这个方案限定也很大——只适宜静态页面的缓存,很适宜企业展示类的网站;而对付一些须要动态渲染的网站,比如无忧速建在线教室这种有会员系统的网站,页面须要根据用户是否登录显示不同内容的,就无法大略地用缓存插件来加速;再比如WordPress后台也是动态渲染形式,实在也是无法通过缓存插件实现加速的。

对付动态渲染页面的加速实在我们之前也总结过一些干货:10年履历终极盘点,彻底办理WordPress后台访问慢的问题;

上面的教程可以办理一些问题,然而我们在开拓无忧速建在线教室系统时,引入了可视化自助建站理念,又加入了课程收费和付费会员等功能,统统都按WP标准开拓,虽然该做的优化都做了,但可能因功能太弘大,造成访问速率一贯不太满意。

以是我们又探索出一条新的优化路子,利用PHP的Opcache拓展,操作十分大略,而且提速效果明显。

OPCache

看下没有用Opcache优化时的访问速率测试:

访问速率测试

用的是Edge浏览器的网络速率测试工具。

这是经由一系列常规优化之后的速率,做事器配置是阿里云2核CPU/4G内存/5M带宽C5实例,网站全部打开用了2.52秒,可以觉得到明显的卡顿,追求极致访问速率的话,这样肯定是不过关的;

通过截图的数据可以看到发送要求用了0.1毫秒,速率很快,内容下载用了39.02毫秒,速率也很不错;最耗时的部分是“正在等待(TTFB)”,用了2.47秒,这部分发生在做事器已经吸收到要求之后到内容开始下载之前,也便是做事器处理用户发来的要求并天生返回内容所耗的韶光,该当包含了代码逻辑的实行、数据库查询、文件读取等步骤,实际上我们已经优化了数据库部分,而文件读取取决于磁盘IO性能,而且网站访问量较少的情形下,不该成为瓶颈,以是唯一可能便是代码实行阶段出了问题。

现在来看本日的主角,Opcache吧。

Opcache是PHP官方出品的一个性能优化拓展,自PHP5.5开始已经绑定该拓展,但默认是不开启的。

Opcache事情事理

关于它的事情事理,这里大略说下,感兴趣的朋友可以看看,不感兴趣的可以直接跳过,直接看详细如何配置利用。

要说清楚Opcache事理,必须先从PHP措辞如何处理http要求提及,统共四步:

吸收到要求后,启动Zend引擎,加载注册的拓展模块;初始化后读取脚本文件,Zend引擎对脚本文件进行词法剖析,语法剖析,天生语法树;Zend引擎编译语法树,天生opcode;Zend引擎实行opcode,返回实行结果;

可以把Zend算作运行PHP措辞的机器,吸收到用户要求之后,机器必须先启动起来,再处理PHP措辞编写的代码天生电脑能看懂的编码,末了实行编码得到结果。

用户每发来一次要求上述过程都要全部走一遍(php-fpm形式不会重复步骤1),做事器每天要处理的要求数量是十分巨大的,以是上面的过程要花费很多性能。
实际上对付一个已经上线的网站来说,源代码是极少变动的,以是步骤1、步骤2、步骤3没必要每次都实行。
Opcache便是用来缓存步骤1/2/3的。

Opcache利用方法

以宝塔面板为例:

进入软件商店,找到你利用的PHP版本,我们用的是PHP7.4,点击设置,如下图:

PHP设置

找到Opcache,点击安装

PHP拓展安装

安装成功之后Opcache自动生效,但是宝塔面板的默认设置可能会有问题,以是须要检讨一下配置:

进入PHP的配置修正,查看以下部分代码:

Opcache设置

着重看这几行:

opcache.memory_consumption

指的是Opcache可用内存大小,单位为MB,根据你的做事器内存来定,一样平常设为内存的1/4,我们是4G内存,就设成了512;

opcache.max_accelerated_files

指的是可缓存的最大PHP文件数,看你的代码量了,一样平常10-20万即可;

opcache.validate_timestamps

指的是缓存过期韶光,这里务必设为0,表示禁用,否则会涌现很多重复天生缓存的问题;

下面贴一个完全配置:

opcache.enable = 1

opcache.memory_consumption=512

opcache.interned_strings_buffer=32

opcache.max_accelerated_files=80000

opcache.revalidate_freq=3

opcache.fast_shutdown=1

opcache.enable_cli=1

opcache.validate_timestamps=0

看下加速效果:

要把稳的是,第一次访问速率不会变快,由于要天生缓存,以是测试第二次的访问速率。

还是以无忧速建在线教室系统为例:

优化后速率测试

可以看到TTFB韶光已经降到了668毫秒,整体访问速率也压在了1秒以下,基本实现秒开效果。

Opcache利用把稳事变

Opcache看似美好,但是也有一些弊端:

Opcache天生的缓存是常驻内存的,网站代码量很大的话会占用大量内存,以是做事器内存太低的话不建议利用;每次代码有更新都须要手动重新天生缓存,否则新代码不会生效,可以通过宝塔的重启PHP生效;线上正式环境务必关闭opcache.validate_timestamps选项,否则Opcache会不断检讨代码是否有更新,并天生新缓存,这也会额外花费做事器性能还有其他难以理解的问题;

实际上这个方法适用于任何PHP措辞开拓的网站,如果你的网站已经通过各种路子优化过,速率仍旧不理想,不妨试一下本方案。

标签:

相关文章

php中的升序技巧_PHP 数组排序

PHP - 数组排序函数在本章中,我们将逐一先容下列 PHP 数组排序函数:sort( - 对数组进行升序排列rsort( -...

网站推广 2024-12-08 阅读0 评论0