nginx压力测试
安装ab命令
[root@master ~]# yum -y install httpd-tools
硬件配置型号
[root@master ~]# dmidecode | grep "Product Name" Product Name: VMware Virtual Platform Product Name: 440BX Desktop Reference Platform
CPU
[root@master ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq Intel(R) Core(TM) i3-2348M CPU @ 2.30GHz
内存
[root@master ~]# dmidecode|grep -P -A5 "Memory\s+Device" | grep Size |grep -v Range | cat -n 1 Size: 512 MB
软件环境
操作系统
[root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
服务版本
[root@master ~]# /usr/local/nginx/sbin/nginx -v nginx version: liujunjun/1.0
测试软件
[root@master ~]# ab -V This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/
并发测试
说明:测试基于Linux系统。
1000并发
测试1000并发,处理10000请求:
[root@master ~]# ab -c 1000 -n 10000 http://192.168.1.222/static/index.html This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.222 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: liujunjun/1.0 (服务器软件名称及版本信息) Server Hostname: 192.168.1.222 (服务器主机名) Server Port: 80 (服务器端口) Document Path: /static/index.html (供测试的URL路径) Document Length: 14 bytes (供测试的URL返回的文档大小) Concurrency Level: 1000 (并发数) Time taken for tests: 1.476 seconds (压力测试消耗的总时间) Complete requests: 10000 (压力测试的的总次数) Failed requests: 0 (失败的请求数) Write errors: 0 Total transferred: 2450000 bytes (传输的总数据量) HTML transferred: 140000 bytes (HTML文档的总数据量) Requests per second: 6776.24 [#/sec] (mean) (平均每秒的请求数) Time per request: 147.574 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间) Time per request: 0.148 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间) Transfer rate: 1621.27 [Kbytes/sec] received (传输速率,单位:KB/s) Connection Times (ms) min mean[+/-sd] median max Connect: 1 76 253.6 4 1020 Processing: 2 20 28.9 13 418 Waiting: 1 16 28.2 10 418 Total: 8 96 266.0 16 1425 Percentage of the requests served within a certain time (ms) 这个表第一行表示有50%的请求都是在16ms内完成的,可以看到这个值是比较接近平均系统响应时间,以此类推。 50% 16 66% 16 75% 17 80% 19 90% 106 95% 1030 98% 1037 99% 1218 100% 1425 (longest request)
2000并发
[root@master ~]# cat /proc/sys/fs/file-max 44685 [root@master ~]# ulimit -n 1024
临时修改
[root@master ~]# ulimit -HSn 2048
永久修改
[root@master ~]# ulimit -a 65535
[root@master ~]# ab -c 2000 -n 40000 http://192.168.1.222/static/index.html This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.222 (be patient) Completed 4000 requests Completed 8000 requests Completed 12000 requests Completed 16000 requests Completed 20000 requests Completed 24000 requests Completed 28000 requests Completed 32000 requests Completed 36000 requests Completed 40000 requests Finished 40000 requests Server Software: liujunjun/1.0 Server Hostname: 192.168.1.222 Server Port: 80 Document Path: /static/index.html Document Length: 14 bytes Concurrency Level: 2000 Time taken for tests: 5.719 seconds Complete requests: 40000 Failed requests: 1 (Connect: 0, Receive: 0, Length: 1, Exceptions: 0) Write errors: 0 Non-2xx responses: 1 Total transferred: 9800112 bytes HTML transferred: 560180 bytes Requests per second: 6993.66 [#/sec] (mean) Time per request: 285.973 [ms] (mean) Time per request: 0.143 [ms] (mean, across all concurrent requests) Transfer rate: 1673.31 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 158 443.7 4 3021 Processing: 6 19 40.6 13 1832 Waiting: 1 16 40.4 10 1832 Total: 11 177 451.5 17 3427 Percentage of the requests served within a certain time (ms) 50% 17 66% 18 75% 20 80% 21 90% 1023 95% 1029 98% 1048 99% 3023 100% 3427 (longest request)
测试总结
数据汇总
请求连接数 | 并发数 | 请求失败数 | 每秒处理请求数 | 一次并发数请求响应时间(ms) | 全体请求完成时间(s) | 请求成功率 |
10000 | 1000 | 0 |
6994 |
147.574 |
1.476 |
100% |
40000 | 2000 | 0 | 6994 |
285.973 |
5.719 |
100% |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?