服务器优化的五大“军规”


下面这五条规则可以帮助你优化安装的Drupal服务器,另外附有一些示例,说明如何运用这些规则。服务器优化是个庞大的领域,它在不断进化,但是我们可以通过研究分析一些简单的情况,了解比较复杂的情况。

下面我们侧重于几个变量,衡量它们对性能带来的影响。

第一条规则:要是不测试性能,优化就无从谈起。

现在有好多工具可以用来准确地评估和测试性能,不过本文就着重介绍最重要的一款工具:Apache Benchmark。使用该工具在你的网站上查询特定页面(甚至可以向它传送cooki信息,模拟通过验证的用户),以测量响应情况。你可以在接受测试的服务器上的命令行使用Apache Benchmark,同时仍能获得有效的结果,因为该工具占用的处理器和内存资源很少。下面是一种典型的用法:

$ ab -n 1000 -c 20 http://example.com/
这里的值如下:
n = 页面请求的数量
c = 并发连接的数量
最重要的参数是c,即并发请求的数量,而n这个数要足够大,才能提供稳定的结果。关键在于,要使用不同的c值来测试网站,先从小的数值开始,逐步加大,直到“每秒请求”的返回值开始下降。比如说:
$ ab -n 1000 -c 20 http://example.com/ | grep ‘Requests per second’
每秒请求:45.29 [#/sec](平均值)
$ ab -n 1000 -c 40 http://example.com/ | grep ‘Requests per second’
每秒请求:46.91 [#/sec](平均值)
$ ab -n 1000 -c 60 http://example.com/ | grep ‘Requests per second’
每秒请求:8.55 [#/sec](平均值)
$ ab -n 1000 -c 80 http://example.com/ | grep ‘Requests per second’
每秒请求:2.21 [#/sec](平均值)

我们可以使用更小的增量来细化c值,但是以10为最接近倍数通常足矣。

第二条规则:减少占用的内存,直到分页停止。

每秒请求数突然下降最有可能的原因是,我们让内存过载,系统开始交换至分页文件。这给总体性能带来的影响与在Windows、Mac OS X或支持分页机制的任何系统上打开过多应用程序带来的影响一样。

在你测试性能后,看一下使用了多少个交换文件。下面是4GB服务器上的典型值:

$ free -m
total used free shared buffers cached
Mem: 4011 1481 2530 0 45 824
-/+ buffers/cache: 611 3400
Swap: 8191 2145 8191

这里我们使用2145 MB大小的交换文件;在使用最大的c值测试性能时,可能已创建了该文件。你首先要做的就是清空交换文件,然而查一下值是否回到零:

$ sudo swapoff -a
$ sudo swapon -a
$ free -m
total used free shared buffers cached
Mem: 4011 1379 2632 0 45 834
-/+ buffers/cache: 499 3512
Swap: 8191 0 8191

现在关键是,使用接近我们看到性能下降的那个值的c值,重新做一遍上面的测试,检查每次请求后的分页文件: