hopeless-dream

导航

tomcat中NIO、NIO2链接器的socket属性

tomcat中NIO、NIO2链接器的socket属性

属性名称
默认值
描述
socket.rxBufSize JVM设置 Socket接收缓冲区(SO_RCVBUF),以字节为单位。
socket.txBufSize JVM设置 Socket发送缓冲区(SO_SNDBUF),以字节为单位。
socket.tcpNoDelay JVM设置 相当于Socket的标准属性tcpNoDelay,boolean类型取值
socket.soKeepAlive JVM设置 Socket长连接设置(SO_KEEPALIVE),取值:boolean类型
socket.ooBInline JVM设置

Socket OOBINLINE设置,取值:boolean类型

socket.soReuseAddress JVM设置 Socket复用连接地址(SORESUEADDR),取值:boolean类型
socket.soLingerOn JVM设置 Socket延时关闭选项,标准属性中connectionLinger>=0时,此值为true,connectionLinger<0时,此值为false。取值为true时,必须设置socket.soLingerTime,否则将使用JVM设置。取值:boolean类型
socket.soLingerTime JVM设置 Socket延时关闭时长(SO_LINGER),单位:秒。
socket.soTimeout   相当于标准属性中的connectionTimeout
socket.performanceConnectionTime JVM设置 性能设置的第一个值,这三个值必须同时设置。
socket.performanceLatency JVM设置 性能设置的第二个值,这三个值必须同时设置。
socket.performanceBandwidth JVM设置 性能设置的第三个值,这三个值必须同时设置。
socket.unlockTimeout 250 Socket解锁的超时时间,单位:毫秒。

NIO的特有属性

属性名称
默认值
描述
pollerThreadCount 1 处理轮询事件的线程数量,在版本7.0.27及以前版本,默认值是每个处理器1个。版本7.0.28的默认值是每个处理器1个,但不超过2个。
pollerThreadPriority 5 轮询线程的优先级。
selectorTimeout 1000 选择轮询器的超时时间。单位:毫秒。
useComet true 是否允许comet servlet。comet是基于http的长连接技术。
useSendfile true 是否允许send file。
socket.directBuffer false 直接使用ByteBuffers或java映射的ByteBuffers。当使用direct ByteBuffers,请确保你分配适当的内存量给直接内存空间。JDK配置如-XX:MaxDirectMemorySize=256M。
socket.appReadBufSize 8192

在Tomcat中每个连接的开辟连接一个读ByteBuffer。此属性控制这个缓冲区的大小。单位:字节。

对于较低的并发,可以增加这个值以缓冲更多的数据。对于长连接数很多的情况,需要降低这个数值或者增加堆大小。

socket.appWriteBufSize 8192

在Tomcat中每个连接的开辟连接一个写ByteBuffer。此属性控制这个缓冲区的大小。单位:字节。

对于较低的并发,你可以增加这个值以缓冲更多的响应数据。对于长连接数很多的情况,你需要降低这个数值或者增加堆大小。

socket.bufferPool 500

NIO连接器使用NioChannel这个类来持有链接到一个套接字的元素。为了减少垃圾收集,NIO连接器缓存这些通道的对象。此值指定这个缓存的大小。

默认值是500,表示缓存将持有500个 NioChannel的对象。-1表示不限制缓存大小,0表示不缓存。

socket.bufferPoolSize 1024*1024*100

NioChannel池是基于尺寸大小,而不是基于对象数的。NioChannel的缓冲区大小=读取缓冲区大小+写入缓冲区大小;

SecureNioChannel的缓冲区大小=应用程序读取缓冲区大小+应用程序写入缓冲区的大小+网络读取缓冲区大小+网络写入缓冲区的大小。单位:字节。

socket.processorCache 500 Tomcat缓存SocketProcessor对象的最大值。默认值是500。-1表示不限制缓存大小,0表示不缓存。
socket.keyCache 500 Tomcat缓存KeyAttachment对象的最大值。默认值是500。-1表示不限制缓存大小,0表示不缓存。
socket.eventCache 500 Tomcat缓存PollerEvent对象的最大值。默认值是500。-1表示不限制缓存大小,0表示不缓存。
selectorPool.maxSelectors 200 以减少选择器的争用,在池中使用的选择器最大个数。命令行值org.apache.tomcat.util.net.NioSelectorShared设置为false时,使用此选项。
selectorPool.maxSpareSelectors -1

以减少选择器的争用,在池中使用的最大备用选择器个数。当选择器返回到池中时,系统可以决定保留它或者让他垃圾回收。

当org.apache.tomcat.util.net.NioSelectorShared 值设置为false时,使用此选项。默认值是-1(无限制)

command-line-options  

可用于NIO连接器的命令行选项。如果你想每个线程使用一个选择器,将此值设置为false。

当你将它设置为false,你可以通过使用selectorPool.maxSelectors属性控制选择器池的大小。

oomParachute 1024*1024*1

NIO连接器实现了一个名叫parachute的OutOfMemoryError错误的策略。

它拥有一个块的数据作为一个字节数组。在一个OOM的情况下,这个数据块被释放,并报告错误。单位:字节。

NIO2的特有属性

属性名称
默认值
描述
useSendfile
true
控制是否开启sendfilenegligible。使用sendfile将使tomcat的压缩功能无效
socket.directBufferfalse直接使用ByteBuffers或java映射的ByteBuffers。当使用direct ByteBuffers,请确保你分配适当的内存量给直接内存空间。JDK配置如-XX:MaxDirectMemorySize=256M。
socket.directSslBufferfalse用于ssl缓冲
socket.appReadBufSize8192

在Tomcat中每个连接的开辟连接一个读ByteBuffer。此属性控制这个缓冲区的大小。单位:字节。

对于较低的并发,可以增加这个值以缓冲更多的数据。对于长连接数很多的情况,需要降低这个数值或者增加堆大小。

socket.appWriteBufSize8192

在Tomcat中每个连接的开辟连接一个写ByteBuffer。此属性控制这个缓冲区的大小。单位:字节。

对于较低的并发,你可以增加这个值以缓冲更多的响应数据。对于长连接数很多的情况,你需要降低这个数值或者增加堆大小。

socket.bufferPool500缓存Nio2Channel对象的个数(用于降低垃圾回收),-1表示不限制,0表示不缓存
socket.processorCache500Tomcat缓存SocketProcessor对象的最大值。默认值是500。-1表示不限制缓存大小,0表示不缓存。

 

posted on 2020-09-06 11:09  hopeless-dream  阅读(758)  评论(0编辑  收藏  举报