我正在构建一个 websocket++ 服务器,并且我想确保我能从中获得最后一滴性能。
作者 zaphoyd 曾说过,操作系统级别的文件描述符必须经过适当调整才能拥有 10,000 多个客户端连接。 https://stackoverflow.com/a/15464445/1382306
如何为 linux/ubuntu 做到这一点?
我正在构建一个 websocket++ 服务器,并且我想确保我能从中获得最后一滴性能。
作者 zaphoyd 曾说过,操作系统级别的文件描述符必须经过适当调整才能拥有 10,000 多个客户端连接。 https://stackoverflow.com/a/15464445/1382306
如何为 linux/ubuntu 做到这一点?
“获得最后一滴性能”不是您可以抽象地做的事情。它根据您的应用程序和环境变化太大。要获得有用的答案,请设置压力/负载测试工具,运行分析器,然后查看问题出在哪里或瓶颈在哪里。除非您这样做并拥有一些真实世界的场景和数字,否则花费在“性能调整”上的任何努力都可能会被浪费掉。
特别是关于调整 Linux 服务器以允许大量并发连接的问题。每个连接都需要一个文件描述符。默认情况下,在 Linux 上,每个进程限制为 1024 个 FD。要一次拥有>~1024 个连接,您需要提高该限制。这不会影响性能,但甚至需要开始考虑在高并发级别进行性能调整。
有关更多信息,请参阅:https ://unix.stackexchange.com/questions/36841/why-is-number-of-open-files-limited-in-linux和 https://serverfault.com/questions/190435/how -to-increase-open-files-limit-for-process-from-1024-to-10240