You are here

Drupal专业开发指南 第22章 找出瓶颈

如果你的网站运行性能达不到预期,第一步要做的就是分析问题所在。可能的原因包括web服务器,操作系统,数据库,和网络。

 
初步追踪
了解如何估算一个系统的性能和可升级性,即便是在出现大的问题时,它也能使你保持自信,从而快速的隔离并找到系统的瓶颈。你可以借助于一些简单的工具,通过询问一些问题,来发现瓶颈。这里给出了一种方式,用来分析一个存在严重性能问题的服务器。首先,我们需要知道性能是有哪些因素决定的,CPU,RAM,I/O,或者带宽都是影响性能的因素。那么你需要询问以下问题:
 
CPU占用率达到最大了吗?检查CPU的使用情况,在Unix上你可以使用top,在Windows上可以使用任务管理器,如果CPU占用率达到了100%,那么你的任务就是找出是什么程序占用了CPU。查看进程列表,可以让你了解到,是不是web服务器或者数据库占用了处理器的大部分计算资源。这两者都是可以解决的。
 
服务器的RAM用完了没有?Unix上你可以使用top,在Windows上可以使用任务管理器,,来方便的检查这一点。如果服务器还有大量的空闲内存,那么继续下一个问题。如果服务器用完了内存,你必须找出原因。
 
磁盘空间不足了吗?检查磁盘子系统,在Unix使用工具vmstat,在Windows下使用性能监测器,如果可用磁盘不能满足需求,同时又有大量空闲内存剩余,那么这就是一个I/O问题。可能的原因包括,记录了大量的冗余日志,对数据库不恰当的配置使得在磁盘上创建了许多临时表,后台脚本的执行,对于一个需要大量写操作的系统使用了一个不恰当的RAID级别,等等。
 
网络带宽用完了吗?如果网络带宽用完了,那么只有两种解决方案。一个是增加带宽。另一个是对发送的信息进行恰当的压缩,从而发送更少的信息。
 
Web服务器用完了CPU
如果你的CPU占用率达到了100%,而根据进程列表显示,是web服务器消耗了大量的资源而不是数据库(后面介绍),那么你应该去减少web服务器处理一个请求所耗费的资源。通常PHP代码的执行就是罪魁祸首。
 

Drupal版本: