1

在用 Python 编写我自己的 RPC 方法时,我在 MacOS X (10.9.1) 上发现了一些尴尬的行为。我像这样启动 Python 的简单 HTTP 服务器:

python -m SimpleHTTPServer

然后我启动 Apache 的 HTTP 基准测试工具:

ab -n 20000 http://127.0.0.1:8000/
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 127.0.0.1 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
apr_socket_recv: Operation timed out (60)
Total of 16343 requests completed

就是这样......即使运行“ab -n 1000 ...”17次也会在最后一次运行中产生相同的结果。在基于 Ubuntu 的系统上做同样的事情。

版本是:

Python 2.7.5
Darwin box 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64

有谁知道为什么 MacOS X 上的 Python 不能处理超过 16.000 个请求,以及是否有可能的解决方法?

谢谢

4

0 回答 0