我有一个提供 RESTful API 的 Apache2 和 Django (mod_wsgi) 设置。我为此有一组自动化测试,按顺序执行约 1000 个 API 请求(纯 http GET/POST/PUT/DELETE)。
问题是,对于每 80 个左右的请求,我会在 5 秒或 10 秒内得到一个奇怪的延迟/超时。在此处查看时间戳示例:
Request 1: 2013-08-30T03:49:20.915
Response 1: 2013-08-30T03:49:30.940
Request 2: 2013-08-30T03:50:32.559
Response 2: 2013-08-30T03:50:37.597
我不明白为什么会这样。我有一个带有 KeepAlive Off 的 apache 配置(Django 的推荐设置设置),但 Ubuntu 12.04 LTS 的其他标准安装。
我正在从网络服务器所在的同一台服务器上运行测试,我首先认为这是某种 DNS 缓存,但我已将我请求的主机名添加到 /etc/hosts 但问题仍然存在。
当这种延迟/超时发生时,系统处于空闲状态并且有很多 cpu 和 mem。延迟并非特定于某个请求(URL),它似乎有点随机。
考虑到它总是精确到毫秒 5s 或 10s,感觉这是某个特定的设置导致了这种情况。