
很多客户网站慢,第一反应就是「升配置」。但有一半的慢,其实不是机器不够,是默认配置没调。上个月帮一个企业站做体检,2核4G的服务器跑着WordPress,首屏要2.4秒。我没动硬件,就调了几处LNMP参数,首屏掉到1.1秒左右。今天就讲这套调优怎么做。
调优之前先测基线,不然你都不知道改完有没有用。在服务器上装个压测工具,或者直接看访问日志里的响应时间都行。我习惯用 curl 测 TTFB,再配合 PHP-FPM 的慢日志和 MySQL 的慢查询日志,先定位瓶颈在PHP、MySQL还是网络,再对症下药。
最常见的问题是 PHP-FPM 进程数不合适。宝塔默认有时候开得保守,有时候又开太多把内存吃光。记住一个算法:每个 PHP 进程大概占30-40MB内存,2G内存的机器,给系统留500MB,剩下的除以40,就是大概能开的进程数,通常20个上下比较稳。开太少请求排队,开太多直接OOM,都不行。
OPcache 一定要开。它是把PHP编译后的结果缓存起来,省掉每次请求重新编译,对WordPress这种重框架的站点收益特别明显。宝塔里一键就能开,设个128M够用。开了之后,动态页面处理时间经常能砍掉一半以上。
MySQL 那边重点是 innodb_buffer_pool_size。这个参数控制数据库缓存,默认值经常偏小。建议设到内存的三成左右,2G机器设512M,4G设1G。改完记得重启MySQL让它生效。再配合把慢查询日志打开,找出那些跑得慢的SQL去优化索引。
如果上面都做了还慢,再考虑上 Redis 做对象缓存。WordPress 装个 Redis 插件,把数据库查询结果缓存到内存,重复请求不再查库,效果立竿见影。但要注意:Redis 也吃内存,小机器别贪,128M够用;而且缓存类插件别装重复了,一个就够。
最后说两句实话:调优只能解决「配置没到位」的问题,解决不了「程序本身就烂」的问题。如果网站是那种一个页面查一百次数据库的老主题,参数调到底也是杯水车薪。先看是不是该换主题、减插件,再谈环境调优。还有,改任何参数前先备份配置文件,改完记得压测验证,别调完反而更慢。
还木有评论哦,快来抢沙发吧~