基准测试使用uwsgi nginx和pypy部署的简单python web服务的最佳方式是什么?uwsgi + nginx + pypy web服务基准测试
如何根据我的硬件规格学习预期的平均结果?
我用AB:
[email protected]# ab -kc 10 -n 1000 http://domain:8080/
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 domain (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: domain
Server Port: 8080
Document Path: /
Document Length: 11 bytes
Concurrency Level: 10
Time taken for tests: 21.567 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 0
Total transferred: 55000 bytes
HTML transferred: 11000 bytes
Requests per second: 46.37 [#/sec] (mean)
Time per request: 215.673 [ms] (mean)
Time per request: 21.567 [ms] (mean, across all concurrent requests)
Transfer rate: 2.49 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 103 109 63.1 104 1107
Processing: 103 105 1.6 105 109
Waiting: 103 105 1.6 105 109
Total: 206 214 63.2 209 1215
Percentage of the requests served within a certain time (ms)
50% 209
66% 210
75% 210
80% 215
90% 216
95% 216
98% 216
99% 216
100% 1215 (longest request)
但我不知道这些值是否正常与否。这对我来说似乎非常缓慢。 46 rps只有10个并发连接?
当我使用100个并发连接,我的Web服务器崩溃和不响应
哪儿我去错了吗?
当我用1000并发连接时,ab不能完成测试。
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
apr_socket_recv: Connection reset by peer (104)
Total of 9894 requests completed
开始uwsgi在virtal ENV:
uwsgi --http :8080 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats :9191
我的HW: 2GB内存,2个核心(2GB的Linode)
当我1000个并发连接使用,AB无法完成测试: 完成9000个请求 apr_socket_recv:连接被对方复位(104) 9894个请求总计完成 – MatandDie
@MatandDie,这个问题似乎更直接关系到uWSGI与nginx进行通信的方式。你有没有尝试增加你的缓冲区大小?如果您接收到大量请求或许多请求,则可以使用'buffer-size = 65535'将uWSGI中的缓冲区大小增加到64k。 –
与缓冲区大小参数相同的结果。顺便说一句,非常感谢:) – MatandDie