我的 nancy web-apps 在没有实际使用的情况下一起使用了 100% 的 CPU。
它们在单声道的 docker 容器中运行。我唯一能想到的就是我的 main 函数中的无限循环,比如
while(Console.ReadLine() != "quit") {}
但我想,Console.ReadLine()
会阻塞,因此这个循环只会在有输入时执行,而这本来不应该有。艾米我错过了什么? nancy 在单声道中用完所有 CPU 是否还有其他原因? - 在开发过程中,在 Windows 中它似乎运行良好。
更新:
docker 中的应用程序简单地通过 mono NancyServer.exe
启动。内存使用率远低于之前的基于 XPS 的版本(50-70MB 而不是 160-180MB),但基于 XPS 的应用程序使用的 CPU 不到 0.1%(也没有真正做任何事情)
最佳答案
如果没有-t
or -i
options,我可以通过在前台启动一个容器来重现非阻塞行为。被使用。在这种特殊情况下,Console.ReadLine()
不会阻塞。
如果使用 -i
或 -t
,则 Console.ReadLine
会阻塞。此外,如果我在后台运行容器(使用 -d
option ),Console.ReadLine()
会阻塞。
如果您在前台运行容器,请确保使用 -t
或 -i
。
关于linux - Linux 上的 Nancy 使用 100% CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973631/