我有一个Tomcat7应用程序,使用'长轮询'为数万个并发连接提供服务。 长轮询(简称)意味着我在向客户端发回响应(新数据或304代码)之前,长时间坚持请求。
我试图最小化这些连接消耗的内存量。 显而易见的低挂果是堆栈大小和app缓冲区大小(请参阅下面的我的Catalina连接器配置)。 但是,这还不够。
我看到了' socket.rxBufSize'和&#t; BufSize',他们的默认值相当大。 这些文件是:
(int)套接字接收缓冲区(SO_RCVBUF)大小(以字节为单位)。默认值为25188
如果我愿意去减少他们的价值观,那么什么价值观才有意义?如果缓冲区太小会发生什么?
connectionTimeout =" 3000"的KeepAliveTimeout =" 13000" acceptorThreadCount =" 4" enableLookups ="假" MAXCONNECTIONS =" 100000" minSpareThreads =" 250" acceptCount =" 10000"压缩="上" compressionMinSize =" 256" maxKeepAliveRequests =" -1" socket.appReadBufSize =" 128" socket.appWriteBufSize =" 1024" maxThreads =" 500"
谢谢!
答案 0 :(得分:1)
我不知道你是否会因摆弄这些价值而获得任何重大改进,但你可以随时尝试。