Django 奇怪的apache请求延迟

Django 奇怪的apache请求延迟,django,apache,wsgi,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-30

我有一个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的apache配置(Django的推荐设置),但Ubuntu 12.04 LTS的标准安装除外

我在Web服务器所在的同一台服务器上运行测试,我最初认为这是某种DNS缓存,但我已将请求的主机名添加到/etc/hosts,但问题仍然存在

发生这种延迟/超时时,系统处于空闲状态,并且有大量cpu和mem。 延迟并不是特定于某个请求(URL),它似乎有点随机


考虑到它总是精确到毫秒5秒或10秒,感觉这是某个特定的设置导致的。

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

这篇演讲讨论了流程搅动和启动成本等问题。有一件事你不应该做,那就是设置最大请求量,如果你真的不需要的话

还考虑尝试新的文物来帮助诊断问题所在。这将节省很多猜测,如果它是一个后端服务基础设施问题的web应用程序

至于这种监控有何帮助,请观看我的另一次PyCon对话


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

      这篇演讲讨论了流程搅动和启动成本等问题。有一件事你不应该做,那就是设置最大请求量,如果你真的不需要的话

      还考虑尝试新的文物来帮助诊断问题所在。这将节省很多猜测,如果它是一个后端服务基础设施问题的web应用程序

      至于这种监控有何帮助,请观看我的另一次PyCon对话


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

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

      Apache配置中的
      MaxRequestsArchild
      值是多少?@ThomasOrozco它设置为0,默认值..那么
      WSGIDaemonProcess
      最大请求数
      属性呢?(请参阅)我没有,尝试在虚拟配置中输入此值并重新启动apache:WSGIDaemonProcess local dev threads=15 maximum requests=10000 WSGIProcessGroup local dev,但仍然存在相同的问题..在apache配置中,
      MaxRequestsPerChild
      的值是多少?@thomasorzco它设置为0,默认..那么
      WSGIDaemonProcess
      最大请求数
      属性呢?(请参阅)我没有,尝试在虚拟配置中输入此内容,并重新启动apache:WSGIDaemonProcess local dev threads=15 maximum requests=10000 WSGIProcessGroup local dev,但仍然存在相同的问题。。