站长资源服务器

nginx win32 版本静态文件测试 (Windows环境)

整理:jimmy2024/12/23浏览2
简介下载了 Nginx For Win32 的官方版本 nginx 0.7.53 进行了试用以及压力测试。 安装使用方式很简单,直接贴官方的方式: Win32 Binaries As of 0.7.52, Nginx is now available as an official Windows bin
下载了 Nginx For Win32 的官方版本 nginx 0.7.53

进行了试用以及压力测试。

安装使用方式很简单,直接贴官方的方式:
Win32 Binaries

As of 0.7.52, Nginx is now available as an official Windows binary.

Installation:

cd c:\
unzip nginx-0.7.52.zip
ren nginx-0.7.52 nginx
cd nginx
start nginx

Control:
nginx -s [ stop | quit | reopen | reload ]

For problems look in c:\nginx\logs\error.log or in EventLog.

但要说明一下的,之前有第三方编译的 Nginx For Windows 版本,是可以加载到 Windows 服务中运行的。但在这个官方版本下该方法行不通。所以建议暂时手动启动,或者新建一个计划任务开机启动。

然后迫不及待进行压力测试。我们使用的工具是 Apache 的 ab , 测试的是纯静态页面。就是 Nginx 一装好后默认的 :
Welcome to nginx!

测试命令:./ab -c 100 -n 10000 http://192.168.3.50:8888/
操作系统:Windows server 2003 R2
硬件配置:Xeon 2.8G X2 1G RAM
测试结果:

Server Software: nginx/0.7.53
Server Hostname: 192.168.3.50
Server Port: 8888

Document Path: /
Document Length: 151 bytes

Concurrency Level: 100
Time taken for tests: 107.329 seconds
Complete requests: 10000 (100%处理请求,没有丢失)
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 93.17 [#/sec] (mean) 每秒处理请求 93.17 个
Time per request: 1073.293 [ms] (mean)
Time per request: 10.733 [ms] (mean, across all concurrent requests)
Transfer rate: 32.94 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 13 44.3 2 550
Processing: 180 1059 350.5 1065 2665
Waiting: 178 1053 352.3 1058 2664
Total: 194 1071 351.9 1074 2668

Percentage of the requests served within a certain time (ms)
50% 1074
66% 1162
75% 1215
80% 1288
90% 1547
95% 1694
98% 1853
99% 1946
100% 2668 (longest request)
################

由测试结果所得,Nginx for windows 100 个线程每秒只能处理 93 个请求。
如果再启动多一个 ab 来压,加起来就有200个线程,ab结果相当。各端每秒处理93个请求。
但如果你再启动第三ab 进行 100 个线程压力,正在进行的2个ab 其中一个就会被服务端拒绝。

来回尝试修改Nginx的worker_processes 参数无果,修改了 Win2003 的并发线程也无果….难道 Nginx 在Windows下就只能有这么点能耐??回头要再详细找找原因。

另外还有一个问题,当压力测试完毕了,在 windows 中查看进程会发现 Nginx 还占着 2~30 的cpu。
在命令行下 Nginx -s stop 也无法停止。必须 结束进程…..

################

初步尝试就这几点,希望是我个别的问题,有机会的朋友也不妨试试。

配置 PD930 CPU,2G 内存,测试结果如下:

C:\>ab -n 10000 -c 100 http://192.168.1.8/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
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.8 (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: nginx/0.7.52
Server Hostname: 192.168.1.8
Server Port: 80

Document Path: /
Document Length: 151 bytes

Concurrency Level: 100
Time taken for tests: 5.109 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3620000 bytes
HTML transferred: 1510000 bytes
Requests per second: 1957.19 [#/sec] (mean)
Time per request: 51.094 [ms] (mean)
Time per request: 0.511 [ms] (mean, across all concurrent requests)
Transfer rate: 691.90 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.4 0 16
Processing: 16 50 13.3 47 78
Waiting: 0 34 14.4 31 78
Total: 16 51 13.3 47 78

Percentage of the requests served within a certain time (ms)
50% 47
66% 63
75% 63
80% 63
90% 63
95% 63
98% 63
99% 78
100% 78 (longest request)