我一直在阅读以下文章:
并想知道是否还有什么我需要知道调整Linux处理100万tcp连接? 到目前为止,我已经缩小到以下内容:
还有什么我需要configuration? (这是一个EC2大型64位服务器)
-编辑-
它不是apache,它是一个基于libev的自定义编码的C服务器FYI。 它会扩展到1mil就好了,它的内核是我的担心:)
我在configuration每个用户的设置时遇到了问题,我一直在改变limits.conf中的文件数量,但是却无法再次login,我不得不终止ec2实例。 我发现1024 * 1024是你可以放在limits.conf中的最大值,
echo "* soft nofile 1048576" >> /etc/security/limits.conf echo "* hard nofile 1048576" >> /etc/security/limits.conf
除此之外,以及在mochiweb博客链接中提到的对sysctl的补充,还有什么我需要做的吗?
非常感谢你们 我真的很想看看我能否推送这个服务器来处理1mil的连接…
您可以configuration大部分的可调参数(我必须设置)。 有一件事我发现,当我们缩放像这样的时候,你总是会对你的环境有特别的东西,没有人提到。 为了解决这个问题,你需要确保你正在观察和提醒:
你可能遇到的另外一个问题是HZ值的问题。 在我们的FreeBSD系统上,我们增加了这个。 我在linux上调查了另外一个问题,并且遇到了一个与HZ值相关的套接字队列被清理的情况:
TIME_WAIT连接在超时时间到期后没有被清除
关于这个评论,我不认为FreeBSD明确会更好,他们都需要大量的调整工作。 我们使用FreeBSD,因为这些盒子直接连接到互联网,而OpenBGPD是目前最好的开放源代码的BGP实现。
这取决于服务器的规格和它所服务的内容types。 如果它服务于活跃的内容和媒体,它可能根本不可能(同时对吗?)。 数据库和小型网站应该没问题。 在apacheconfiguration中,尝试使其启动许多工作/子线程。 在盒子本身,只要testing一下,看看Apache是否会处理它。 如果Apache可以但不是盒子,也许别人可以帮助。 抱歉。 祝你好运。
是的,抱歉没有透彻的阅读。