前提:更改服务器的配置文件,支持大量连接。
参考:http://ju.outofmemory.cn/entry/49498 修改服务器配置。
OpenResty:
1 参考 http://www.cnblogs.com/picaso/p/4211551.html 安装 OpenResty
2 官网 http://openresty.org/en/getting-started.html
3 更改配置文件:
http { keepalive_timeout 2000000; --长连接timeout,一个很大的数 keepalive_requests 8192; --每个连接最大请求数 }
events { worker_connections 1024000; --1百万连接 }
4 客户端: 自己study项目程序
netty.demo.OpenRestyClient 类
当OpenResty服务端设置启动1个work时,最大连接数达到27万后,服务端会将所有的连接断开。
疑问:是不是达到上限后,会自动断开空闲连接?
于是,更改程序,客户端每5分钟发一次请求,保持活跃。测试发现,同样,达到27万后,服务端断开所有连接。
疑问:设置多个work,是不是可以提高连接数量?
测试发现,当设置2个work时,到达27万,出现同样现象。
使用dmesg命令,grep进程号,发现系统因为OOM把进程杀死了;而nginx又会重起worker。
5 内存的使用。
OpenResty底层使用的是nginx,每一个worker占用固定的内存,启动的worker越多,进程占用的内存越大。 当有连接进来时,worker占用增加的内存并不大,但系统free内存大量减少,used内存大量增加。说明,每一个连接系统占用的内存更大。