C10K测试:创建1万个长连接

本文记述一下我在Ubunut VBox虚拟机进行C10K连接测试的结果:成功。

测试环境:VirtualBox虚拟机,内存为2GB,内装Ubuntu14.04Desktop系统。宿主机是Windows7系统,内存总计8GB,CPU为i7-3615TM(4核8线程)。

测试状况:见下图,解释随后。


1、最上面的窗口是服务进程窗口(async_server,bm参数是benchmark的意思,屏蔽控制台输出)

2、下面的6个窗口都是客户端进程。前4个窗口每个打开2000个连接,倒数第2个打开1300个连接,倒数第1个打开700个连接。

3、框内文字,每一行代表一个连接,逗号前是客户端用户名(随机生成),后面的"clients 10000"是服务端数据的回显,10000是当前的连接数。

此外,宿主机CPU的占用情况:未测试时VirtualBox.exe进程占用约1-3%,建立1万个连接后基本保持在5-8%之间。

小结:已建立的1万个连接是紧耦合的,只要增加或减少一个客户端就会向所有其它客户端广播当前的连接数。若改为松散连接(仅给监控客户端发送当前连接数),连接数应该还会增加,具体有待测试。此外,每个客户端都要回显连接数会争用控制台输出,也会有一些瓶颈。

猜你喜欢

转载自blog.csdn.net/dyw/article/details/39090657