使用家里的工控机提供服务之后,系统的资源占用率一直居高不下。内存占用率基本在80%以上,cpu占用率也一般在30-40左右。并且还经常会出现cpu跑慢的情况,通过慢查询日志也难以找到问题关键,调用堆栈基本从index.php就开始了,难以定位是哪个插件哪个函数导致的,导致查询效率低下的函数每次都不一样。所以也没办法通过修改代码或者插件的方式来解决这个问题。
不过整体来说比阿里云的服务器已经稳定了很多,至少无法访问的情况大大减少了。
以上为优化之前资源占用情况。
比较奇怪的是今天的访问量到了500以下,想测试下是哪个地区无法访问,结果打开测速网站,网站直接挂了,所有地区全红,cpu内存跑满。于是想着优化下php的执行,开启代码缓存:
修改配置文件:
[opcache] ; 开关打开 opcache.enable=1 ; 设置共享内存大小, 单位为:Mb opcache.memory_consumption=128 ;如果启用,那么 OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。 opcache.validate_timestamps=60
去掉下面一行的注释,如果没有就添加:
zend_extension="opcache.so"
重启php-fpm。
使用 php -m
查看 Opcache 是否生效。
现在资源占用率cpu和内存确实降低了不少:
网站测速,最起码已经不是全红了:
参考链接:https://learnku.com/articles/49492
7 comments
php8还有jit,哈哈哈哈,好像是说可以更快,但是我没咋感受到
默认开启的吗?还是需要插件?
这个问题就得大佬自己瞧一瞧了,我实在是太菜了,我只知道php8的opcache加入了jit,好像能更快,哈哈哈。不好意思大佬
嗯嗯,刚大概了解了一下。也是得先开启opcache,不过优化的更彻底了。
@obaby 测试
有时间试下litespeed,配合wp专用插件效率很高的!
已经安装了litespeed了,用了很长时间了。整体感觉还是不错的,不过cpu 跑满的问题还是时常发生。开启opcache之后确实好了不少。