奇怪的apache在请求中滞后

时间:2013-08-30 10:54:50

标签: django apache wsgi

我有一个Apache2和Django(mod_wsgi)设置,提供RESTful API。我有一套自动化测试,按顺序执行~1000个API请求(纯http GET / POST / PUT / DELETE)。

问题是,对于每80个请求左右,我会得到一个奇怪的滞后/超时,正好是5s或10s。请在此处查看时间戳示例:

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,感觉这是某个特定的设置导致这个。

2 个答案:

答案 0 :(得分:1)

如果它提供了一些见解,请观看PyCon US的演讲。

谈话涉及流程流失和启动成本等问题。如果你真的不需要,你不应该做的就是设置最大请求。

还可以考虑尝试使用New Relic来帮助诊断问题所在。如果它是后端服务基础设施问题的Web应用程序,这将节省大量猜测。

至于了解这种监控如何提供帮助,请观看另一个PyCon会谈。

答案 1 :(得分:0)

这是一个DNS问题,我在本地使用的域名添加到/ etc / hosts实际上解决了这个问题。我刚刚没有重新启动服务器以使更改生效,认为重新启动网络会解决这个问题,但显然不是。