可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

博主必藏实用技巧!简单优化使网站速度提升百倍

现在很多同学都会有Wordpress或者Typecho来搭建自己的博客。博客程序为了通用性和扩展性,会在性能上有所牺牲。如果我们博客变慢了,该如何自救呢?

首先,来看看没优化前到底有多慢

当前的系统环境:

Wordpress运行环境(主要是PHP和MySQL数据库):

WebServer配置:wordpress挂载在8010端口,然后通过nginx的upstream通过80端口代理出去。

压力测试的结果:

  • 外网压测结果(100请求,10并发)

可见基本上就是挂掉的节奏,QPS只有1.98,CPU已经全部吃完。

  • 内网压测结果(依旧是100请求,10并发)

QPS也只有2.08,CPU也是全部吃完。


来整理下我们的优化思路

一、如何找到瓶颈?先梳理一下一个网页请求的完整过程:

  1. 用户访问浏览器

  2. 浏览器发送请求到linux服务器

  3. linux服务器将请求转发给nginx web 服务器

  4. nginx web服务器将业务逻辑交给php进程进行处理

  5. php进程通过调用mysql完成数据的CRUD工作

由上到下分别依赖于:

  1. 用户的操作习惯

  2. 用户到服务器的网络状况

  3. linux服务器的进程调度和网络分配机制

  4. nginx web服务器自身的调度转发机制

  5. 具体的业务逻辑实现机制

  6. 物理硬盘的读取速度

从目前CPU被完全吃完的情况来看,初步估计瓶颈在于wordpress具体的业务实现这块,ok,我们找找工具来验证一下

二、以下是php性能检测工具xhprof检测出来看到的情况:

可见wordpress代码本身性能很低,其中一个apply_filters函数被调用了7300多次,很显然,优化了他就能解决很多问题

ok,我们大致来看下这货干了些啥?

我们用地球语言翻译下,就是说用于添加一个过滤器的钩子,这个和wordpress的框架机制有关。wordpress的作者为了让他更灵活,更容易扩展,采用了Hook的机制,使得页面生成的各种地方,都可以随意的添加很多的自定义方法挂载进来进行扩展,但是同时也就导致性能出现了很大的问题。

ok,原因已找到,那么我们如何解决这个问题呢?

篇幅有限,且看明天第二讲,跟着笔者,将RPS逐步提升到1000以上!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言