linux - Linux 上的 Nancy 使用 100% CPU

标签 linux mono docker nancy

我的 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/

相关文章:

c - 在C中检测文件系统

c# - Mono Pkg-Config.exe 不断崩溃?

c# - 如何使用 TextMate 作为我的 IDE 在 C# 中编程?

python - 无法从 CLI 或 pyodbc 连接到 Mac 上 docker 容器中运行的 Mssql 服务器 - Azure DS 可以工作吗?

azure - 被拒绝 : retrieving permissions failed in Azure DevOps pipeline

docker - 用不同的环境变量重启docker

node.js - 带有 beaglebone 问题的 socket.io node.js

c++ - 程序在测试期间被杀死

php - 是否存在精确/准确的计时方法?

generics - Monodroid 泛型不是协变的?