博主必藏实用技巧!从应用层入手,100倍提升网站响应速度

博主必藏实用技巧!从应用层入手,100倍提升网站响应速度

编程文章jaq1232025-08-05 1:19:275A+A-

上会回顾:昨天讲解整体的优化思路,讲到wordpress的性能与HOOK生成机制有关,所以只要能够绕开这一块,我们就有优化的空间。鞋童们可以翻昨天的博文查阅。

如何绕开HOOK生成机制

由于wordpress是php动态生成,所以每一次重新打开页面,所有的数据都会完整的计算一次,但我们写博客不会每一秒钟都写一,那么能不能将每次计算的数据缓存起来呢?只有新写了博客才再次计算呢?

其实是可以的,这里我找到了一个wordpress的缓存插件WP Super Cache

开启这个缓存,我们再看看测试的情况

目前QPS已经飙升至了372,我们再看看XHProf检测的情况

虽然apply_filters还是执行了7000多次,但是自身耗费的时间已经远远的减少了,目前主要的性能瓶颈在于mysql

下面我们先看看这个WP Super Cache到底干了些什么

  1. 首先他生成了一个缓存文件夹
    %wordpress%/wp-content/cache,里面存放就是缓存的静态页面

  2. 然后当第二次访问该页面的时候,则直接从这里读取缓存的页面信息即可

那么mysql的瓶颈我们又应该如何处理呢?

在my.cnf中添加慢查询日志,并且将没有使用索引的SQL也记录下来

slow_query_log=1

slow_query_log_file=/data/log/mysql/slow.log

long_query_time=1

log-queries-not-using-indexes

通过查看slow log,目前需要优化的sql有两条

SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (137,523,526,530,527,528,534,529,524,531,532,533,635,636,637,525,517,520,519,518,521,688,689,536,522) ORDER BY meta_id ASC;

SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

功力不够的同学,可以暂时跳过mysql的优化。

我们给表增加索引,增大数据库查询缓存后,现在再来测试一下,

现在,单优化应用层,即可达到500+的RPS了。还有提升的空间吗?答案是肯定的,且听下回分解。

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21