Apache网页深入优化——ab压力测试,工作模式

发布时间:2020-08-01 18:40:25 作者:一拳超人007
来源:网络 阅读:3022

ab压力测是工具

在进行性能调整优化过程中,可用ab压力测是工具进行优化效果的测试

ab工具使用

命令格式:
ab[options]  网站网址
参数说明:
-n,-c,-t,-v
示例:
/usr/local/httpd/bin/ab -n5000 -c900 www.kgc.com/index.html
在测试时要根据情况调整求总数与并发用户数

ab测试结果关键参数说明

参数 描述
 Server Software              http响应数据的头信息
Server Hostname 请求的url中的主机名称
Server Port web服务器软件的监听端口
Document Path 请求的url根的绝对路径
Document Length http响应数据的正文长度
Concurrency Level 并发的用户数
Time taken for tests 所有这些请求被处理完成所花费的时间总和
Complete requests 表示总请求数
Failed requests 失败的请求总数
Total transferred 请求的响应数据长度总和
Requests per second 服务器的吞吐率,每秒处理的请求数
Time per request 用户平均请求等待时间
Time per request 每个请求实际运行时间的平均值
Percentage of the requests served within a certain time (ms) 描述每个请求处理时间的分布情况

Apache工作模式介绍

可使用./httpd -l查看apache当前工作模式

event工作模式介绍

event工作方式

event参数讲解

## 在http-mpm.conf配置文件中,以下是event模块的定义
<IfModule mpm_event_module>
    StartServers    3
    MinSpareThreads     75
    MaxSpareThreads         250
    ThreadsPerChild         25
    MaxRequestWorkers   400
    MaxConnectionsPerChild  0
</IfModule>

参数说明

参数 说明
StartServers 服务启动时初始的进程数,默认3
MinSpareThreads 最小的空闲子进程数,默认75
MaxSpareThreads 最大的空闲子进程数,默认250
ThreadsPerChild 每个子进程产生的线程数量,默认是25
MaxRequestWorkers 限定同一时间内客户端最大接入请求数量,默认400
MaxConnectionsPerChild 每个子进程在其生命周期内允许的请求数量,如果请求总数已经达到这个数值,子进程将会结束,如果设置为0,子进程将永远不会结束。将该值设置为非0值,可以防止运行PHP导致的内存泄露

event优化建议

可根据生产环境进行调试,以确定合适参数

##优化参考
<IfModule mpm event module>
    ServerLimit     1000
    StartServers    20
    MinSpareThreads     25
    MaxSpareThreads     1200
    ThreadsPerChild     50
    MaxRequestWorkers       2000
    MaxC onnectionsPerChild 1000
</IfModule>

prefork工作模式介绍

prefork参数讲解

##在httpd-mpm.conf配置文件中,以下是prefork模块的定义
<IfModule mpm_ prefork module>
    StartServers        20
    MinSpareServers     10
    MaxSpareServers     50
    MaxClients      150
    MaxRequestsPerChild     0
</IfModule>
参数 说明
ServerLimit 最大进程数
StartServers 启动的时候创建的进程数量
MinSpareServers 最少空闲进程
MaxSpareServers 最多空闲进程
MaxClients 最多创建多少个子进程用来处理请求
MaxRequestsPerChild 每个进程处理的最大请求数,达到请求数,进程即被销毁,如果设置为0,子进程永远不会结束

prefork优化建议

可根据生产环境进行调试,以确定合适参数

##优化参考
<IfModule mpm prefork module>
    ServerLimit         1000
    StartServers        10
    MinSpareServers     10
    MaxSpareServers     30
    MaxClients      1000
    MaxRequestsPerChild 5000
</IfModule>

worker工作模式介绍

worker工作方式

worker参数讲解

参数 说明
ServerLimit 最大进程数,默认值16“”
ThreadL imit 每个子进程的最大线程数,默认值是"64”
StartServers 服务器启动时建立的子进程数,默认值是"3"
MaxClients 允许同时接受的最大接入请求数量(最大线程数量)
MinSpare Threads 最小空闲线程数,,默认值是"75"
MaxSpare Threads 设置最大空闲线程数。默认值是"250"
ThreadsPerChild 每个子进程建立的常驻的执行线程数。默认值是25
MaxRequestsPerChild 设置每个子进程在其生存期内允许伺服的最大请求数量。设置为"0",子进程将永远不会结束

实例(prefork为例)

[root@localhost httpd-2.4.29]#./configure \
--with-mpm=prefork \  ##添加工作模式此配置项
[root@localhost httpd-2.4.29]# vim /etc/httpd.conf 
输入/mpm查找此关键词,将前面的#注释删除
Include conf/extra/httpd-mpm.conf       ##定位到这行将注释删除,启用功能
[root@localhost ~]# cd /usr/local/httpd/conf/extra/
[root@localhost extra]# vim httpd-mpm.conf 
<IfModule mpm_prefork_module>
        StartServers             10     ##启动的时候创建的进程数量改为10
        MinSpareServers          10     ##空闲最小改为10
        MaxSpareServers         20      ##最大设为20
        MaxRequestWorkers      200      ##访问设量为200 
        MaxConnectionsPerChild   0
</IfModule>
##修改完成按Esc退出插入模式,输入:wq保存退出
[root@localhost extra]# cd ../../bin/
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
##重新关闭开启服务
[root@localhost bin]# lsof -i :80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   58933   root    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58937 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58938 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58939 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58940 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58941 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58942 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58943 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58944 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58945 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   58946 daemon    3u  IPv4  88357      0t0  TCP localhost.localdomain:http (LISTEN)
##除去一个主进程,其他的子进程变为10个

Apache目录属性

目录属性参数

参数 作用
Options 设置在特定目录使用哪些特性
AllowOverride 允许存在于.htaccess文件中的指令类型
Require 设置目录的访问控制
Indexes 当用户访问该目录时,但没有指定要访问哪个文件,而且目录下不存在默认网页时,返回目录中的文件和子目录列表
MultiViews 内容协商的多重视图,Apache的一个智能特性。 当访问目录中不存在的对象时
ExecCGI 允许在该目录下执行CGI脚本
FollowSymLinks 在该目录下允许文件系统使用符号连接
Includes 允许服务器端包含功能
IncludesNoExec 允许服务器端包含功能,但禁止执行CGI脚本
All 包含除了MultiViews之外所有特性,如果没有Options语句,默认为All

实例(修改配置文件开启目录属性)

[root@localhost bin]# vim /etc/httpd.conf
//输入/htdocs查找此关键词,找到如下字段,其中有两个功能起到支持作用:

DocumentRoot "/usr/local/httpd/htdocs"
<Directory "/usr/local/httpd/htdocs">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.4/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks      
    //1.Index:以列表形式展现
    //2.FollowSymLinks并且支持链接性的文件
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   AllowOverride FileInfo AuthConfig Limit
        #
        AllowOverride None

        #
        # Controls who can get stuff from this server.
        #
        Require all granted         //黑白名单
</Directory>

#我们可以先关闭防火墙,使用宿主机的浏览器进行验证
[root@localhost bin]# systemctl stop firewalld.service 
[root@localhost bin]# setenforce 0
[root@localhost bin]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# cat index.html 
<html><body><h2>It works!</h2></body></html>
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# mv index.html a.html
[root@localhost htdocs]# ls
a.html
[root@localhost htdocs]# touch b.html c.html d.html
[root@localhost htdocs]# ls
a.html  b.html  c.html  d.html
//此时会以文件列表的形式展现,从另一个角度我们可以利用这点来做文件下载资源的提供,此时就不需要首页识别

Apache网页深入优化——ab压力测试,工作模式

连接文件放到站点中
[root@localhost htdocs]# ln -s /usr/share/man/ ./       
//把man手册放入这个文件夹,看他能不能识别这个链接文件
[root@localhost htdocs]# ls
a.html  b.html  c.html  d.html  man

Apache网页深入优化——ab压力测试,工作模式

谢谢阅读!!!

推荐阅读:
  1. Apache网页优化—网页压缩
  2. ab 压力测试使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

apache工作模式 目录属性 ab压力测试

上一篇:Nagios高级配置

下一篇:嵌入式s5vp210裸机 flash-history

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》