【问题标题】:Lags issue with sinatra thin appsinatra 瘦应用程序的滞后问题
【发布时间】:2023-03-30 06:07:02
【问题描述】:

当流量有点高(30-40 个用户)时,我在使用 sinatra 瘦应用程序时遇到了一些奇怪的滞后问题。 这是一款使用长轮询的小游戏,因此与用户数量相比,http IO 可能会很高。

CPU 负载保持在较低水平,并且有大量可用内存。

以下是一些典型的延迟发生时的日志行:

1 - [17/Jul/2015:16:50:17 -0400] "POST /play?next=word HTTP/1.1" 200 1 0.0018
2 - [17/Jul/2015:16:50:17 -0400] "GET /update?_=1437166100579 HTTP/1.1" 200 304 15.0046
3 - [17/Jul/2015:16:50:17 -0400] "GET /update?_=1437166102348 HTTP/1.1" 200 286 15.0045
4 - [17/Jul/2015:16:50:17 -0400] "POST /accept_replay? HTTP/1.1" 200 - 0.0021
5 - [17/Jul/2015:16:50:18 -0400] "GET /core HTTP/1.1" 200 3719 0.0015
6 - [17/Jul/2015:16:50:18 -0400] "GET /join HTTP/1.1" 302 - 0.0640
7 - [17/Jul/2015:16:50:18 -0400] "GET /core HTTP/1.1" 200 3719 0.0024
8 - [17/Jul/2015:16:50:19 -0400] "POST /play?next=word HTTP/1.1" 200 1 0.0034
9 - [17/Jul/2015:16:50:19 -0400] "GET /update?_=1437166215907 HTTP/1.1" 200 248 10.0018
10- [17/Jul/2015:16:50:19 -0400] "GET /update?_=1437166222579 HTTP/1.1" 200 252 11.0029
11- [17/Jul/2015:16:50:31 -0400] "GET /core HTTP/1.1" 200 3719 0.0034
12- [17/Jul/2015:16:50:31 -0400] "POST /sentiment/bad? HTTP/1.1" 200 - 0.0024
13- [17/Jul/2015:16:50:31 -0400] "GET / HTTP/1.1" 200 4449 0.0086
14- [17/Jul/2015:16:50:31 -0400] "POST /decline_replay HTTP/1.1" 302 - 0.0020

在 [17/Jul/2015:16:50:31 -0400] 时还有 30 个更准确的时间

(get /update 是长轮询请求,因此最多可能需要 40 秒) 一切都在 10 点到 11 点之间停止了 12 秒。在此期间收到的所有请求似乎都在同时处理。

我以这种方式启动应用程序

thin start -p 80

这可能是一个薄问题吗? 我需要一个自定义的瘦配置文件吗? 我需要 nginx 吗?

欢迎任何指示...

编辑: 我在 ObectSpace [SystemStackError, 1][NoMemoryError, 1][IOError, 1] 中发现的错误

【问题讨论】:

    标签: ruby mongodb sinatra thin


    【解决方案1】:

    这种行为很像请求排队,这意味着没有足够的 Web 进程空闲来处理传入的请求。所以请求等待,然后积压被清除,它们突然都被超快地处理了。

    这家伙写了一篇关于如何使用Thin, EventMachine, and Async Sinatra to handle long-polling requests的好帖子。

    【讨论】:

    • 感谢您的回答。我做了一些压力测试,100 个代理随机播放......一切都很好(在比产品服务器更小的 VM 上)。但是那些代理不使用长轮询请求。所以看来这就是问题所在。感谢您的链接,我认为它会很有用。
    猜你喜欢
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    相关资源
    最近更新 更多