2013年/09月/16日
C1000K 基础
有很多技术声称能解决 C1000K 问题, 例如 Erlang, Java NIO 等等, 不过, 我们应该首先弄明白, 什么因素限制了 C1000K 问题的解决. 主要是这几点:
操作系统能否支持百万连接?
操作系统维持百万连接需要多少内存?
应用程序维持百万连接需要多少内存?
百万连接的吞吐量是否超过了网络限制?
sudo sysctl -p /etc/sysctl.conf
/etc/security/limits.conf
如果是百万连接的话, 操作系统本身就要占用 2GB 的内存! 也即 2KB 每连接.
假设百万连接中有 20% 是活跃的, 每个连接每秒传输 1KB 的数据, 那么需要的网络带宽是 0.2M x 1KB/s x 8 = 1.6Gbps, 要求服务器至少是万兆网卡(10Gbps).