Web服务器集群——Apache优化深入

                                                   第五章 Apache优化深入

一、ab压力测试
1、ab是Apache自带的压力测试工具。可对apache、nginx等多种服务器进行测试。对计算机要求很低,但能对目标服务器造成巨大负载。
2、命令格式:ab [参数] [http://]hostname[:port]/path
(1)-n:测试绘画中所执行的请求总数,默认时仅执行一个请求
(2)-c:并发产生的请求个数。默认是一次一个
(3)-t:测试所进行的最大秒数
(4)-v:是指显示信息的详细程度

3、结果参数表

参数 

示例

描述

Server Software

Apache/2.2.17

版本

Server Hostname

www.abc.com

服务器主机名

Server Port

80

端口

Document Path

index.html

测试的页面文档

Document Length

59 bytes

http响应数据的正文长度

Concurrency Level

200

并发用户数量

Time taken for tests

1.004 seconds

所有请求被处理完成所花费的总时间 (秒)

Complete requests

2000

总请求数

Failed requests

0

表示失败的请求数量

Write errors

0

错误数量

Total transferred

822822 bytes

所有请求的响应数据长度总和(http响应数据的头信息和正文数据的长度)

HTML transferred

118118 bytes

所有请求的响应数据中正文数据的总和

Requests per second

1992.65 [#/sec] (mean)

吞吐率    总数/总时间

Time per request

100.369 [ms] (mean)

用户平均请求等待时间

Time per request

0.502 [ms] (mean, across all concurrent requests)

服务器平均等待时间

Transfer rate

800.58 [Kbytes/sec] received

表示这些请求在单位时间内从服务器获取的数据长度

4、未开启压缩模块时测试结果:

5、开启压缩模块后测试结果:

二、Apache工作模式
Apache2.X支持插入式并行处理模块,成为多路处理模块(MPM)。编译Apache时必须选择也只能选择一个MPM。类Unix系统有worker、prefork、event等MPM,不同的MPM会影响到Apache的速度和可伸缩性
1、prefork模式
(1)工作模式:非线程、预派发的Web服务器基于多进程的模式,一个进程处理一个请求
(2)工作模式方式:一个父进程产生子进行,子进程用于监听请求并作出应答
(3)启用模式:Apache2.4以下版本默认启用该模式
(4)参数
StartServers:服务器启动时建立的子进程数量
MinSpareServers:空闲子进程的最小数量,默认5 
MaxSpareServers:空闲子进程的最大数量
ServerLimit:最大的进程数
MaxClients最大的接入请求数=进程数*进程的线程数
MaxRequestsPerChild:每个子进程在其生命周期内允许最大的请求数量(0为不限制)
(5)参数调优
MaxClients:最佳值取决于没存大小,调优目标为服务器使用swap前的最大进程数,通常为内存大小/2M的80%
ServerLimit与MaxClients相同
MaxSpareServers、MinSpareServers、StartServers与MaxRequestPerChild根据实际情况进行设置
2、worker模式
(1)工作模式:多线程多进程
(2)工作方式:父进程产生子进程,子进程建立一定数量的服务线程和监听线程
(3)模式启用:--with-mpm=worker
(4)参数
①StartServers:服务器启动时建立的子进程数量
②MaxClients:最大接入的请求数量,超过该值将进入等候队列
③MinSpareThreads:最小空闲线程数
④MaxSpareThreads:最大空闲线程数
⑤ThreadsPerChild:每个进程包含固定的线程数
⑥MaxRequestsPerChild:每个子进程在其生命周期内允许最大的请求数量(0为不限制)
(5)参数调优
ThreadsPerChild是worker中与性能关系最密切的指令
ServerLimit*ThreadsPerChild>=MaxClients
MaxClients:最佳值取决于没存大小,调优目标为服务器使用swap前的最大进程数,通常为内存大小/2M的80%
3、event模式
(1)参数:
①StartServers:服务器启动初始的进程数量
②MinSpareThreads:最小空闲线程数
③MaxSpareThreads:最大空闲线程数
④ThreadsPerChild:每个进程包含固定的线程数
⑤MaxRequestWorkers:限定同一时间内客户端最大接入的请求数量
⑥MaxConnectionsPerChild:每个子进程在其生命周期内允许最大的请求数量
(2)调优与worker模式类似
 

发布了41 篇原创文章 · 获赞 16 · 访问量 5222

猜你喜欢

转载自blog.csdn.net/lkolkolkol/article/details/104303971
今日推荐