【发布时间】:2014-11-01 00:31:10
【问题描述】:
我在 Heroku 上运行了一个 Node 应用程序,提供 Web 内容并充当 REST API 端点,两者都使用 node-express。我看到的问题是偶尔服务时间会急剧增加。 (有时从 50 毫秒增加到 20000 多毫秒。)这似乎发生在偶尔的静态文件加载以及提供与活动页面的心跳连接的非常简单的 API 调用中。这些峰值发生在整个页面加载的一小部分 (
例如:
heroku router - - at=info method=GET path="/static/js/thirdparty/jquery.min.js" host=somehost request_id=c1a88972-ba1b-4861-80c3-d8949fc1aa24 fwd="XXX.XXX.XXX.XXX" dyno=web.1 connect=64ms service=9560ms status=200 bytes=96677
或者,在 API 调用的情况下:
2014-10-25T01:33:39.360282+00:00 heroku router - - at=info method=POST path="/heartbeat/" host=somehost request_id=4b35cac3-b726-460d-a7fe-6cfc622b8b1c fwd="XXX.XXX.XXX.XXX" dyno=web.1 connect=0ms service=6962ms status=200 bytes=167
我不知道如何正确诊断这一点。我目前正在运行一个测功机,所以我最好的猜测是 something 正在锁定测功机。我还没有投入生产,即便如此,我也预计我的流量水平会很低——没有什么可以广泛证明在任何给定时间同时运行多个测功机是合理的。当我尝试单步执行我的代码并在服务器端添加日志时,我从未见过任何东西在我这边运行缓慢。我很欣赏我的代码中可能有许多变量会导致这种情况——我的心跳中偶尔会出现一些打嗝,从而延迟响应。但这并不能解释为什么我也会在静态提供的文件中看到它。
【问题讨论】: