我正在构建一个websocket ++服务器,我想确保我从中获得最后一滴性能。
作者zaphoyd表示,操作系统级文件描述符必须经过适当调整才能拥有10,000多个客户端连接。 https://stackoverflow.com/a/15464445/1382306如何为linux / ubuntu做到这一点?
答案 0 :(得分:2)
“获得最后一滴性能”并不是你可以抽象的。它根据您的应用和环境而变化太大。要获得有用的答案,请设置压力/负载测试工具,运行探查器,查看故障中断或瓶颈所在。在你这样做并拥有一些真实场景和数字之前,任何用于“性能调整”的努力都可能被浪费掉。
特别是关于调整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