我做了什么 :
- 我使用了以下ab命令:
ab -n 1000 -c 100 http://192.168.101.143:8558/num?num=5
在这里,我试图生成 1000 个 http 请求,100 个并发进程,端口是 8558,并且我想从我自己的 Web 服务器中生成 5 的阶乘。
另一方面,我自己的 Web 服务器正在该 IP 地址端口:8558 处等待请求,当我们执行 ab 命令时,我自己的服务器接受请求并且处理过程给出的响应阶乘为 5,但每次 10-20 请求中的一些都失败原生Linux系统。
但是,当我在本机 Windows 系统上运行自己的服务器时,它会按时给出 1000 个正确响应和 100 个并发进程,而不会失败任何请求。
问题:
- 在 Windows 100 并发进程(线程)中工作正常,但在 Linux 中某些请求失败,为什么?
- Linux 如何解决这个问题?
- 是否有任何与套接字相关的问题?
当服务器在 Windows 平台上时:
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.101.143 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software:
Server Hostname: 192.168.101.143
Server Port: 8558
Document Path: /num?num=5
Document Length: 3 bytes
Concurrency Level: 100
Time taken for tests: 1.350 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 123000 bytes
HTML transferred: 3000 bytes
Requests per second: 652.93 [#/sec] (mean)
Time per request: 155.493 [ms] (mean)
Time per request: 1.550 [ms] (mean, across all concurrent requests)
Transfer rate: 75.20 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 1.6 1 12
Processing: 4 74 117.5 25 1803
Waiting: 2 56 74.4 16 1281
Total: 5 150 117.8 26 1810
Percentage of the requests served within a certain time (ms)
50% 26
66% 42
75% 78
80% 93
90% 171
95% 218
98% 358
99% 536
100% 1810 (longest request)
服务器在 Linux 平台上运行时:
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.101.143 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software:
Server Hostname: 192.168.101.143
Server Port: 8558
Document Path: /num?num=5
Document Length: 3 bytes
Concurrency Level: 100
Time taken for tests: 9.899 seconds
Complete requests: 1000
Failed requests: 13
(Connect: 0, Receive: 0, Length: 13, Exceptions: 0)
Total transferred: 119802 bytes
HTML transferred: 2922 bytes
Requests per second: 102.91 [#/sec] (mean)
Time per request: 120.934 [ms] (mean)
Time per request: 1.299 [ms] (mean, across all concurrent requests)
Transfer rate: 50.19 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 4 3.0 3 21
Processing: 2 346 2206.7 7 18823
Waiting: 0 76 657.4 6 6371
Total: 3 90 2206.7 10 18827
Percentage of the requests served within a certain time (ms)
50% 10
66% 12
75% 15
80% 17
90% 26
95% 39
98% 6341
99% 18820
100% 18827 (longest request)