• 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表示不缓存。
  • 相关阅读:
    InnoDB和MyISAM区别
    include和require的区别
    php的魔术方法
    php中heredoc的使用方法
    20条常见的编码陷阱
    php header 跳转
    php.ini设置详解
    session的实现原理 大网站应用应注意的问题
    Ruby on Rails 开发实践相关命令参考
    IBM WebSphere Portal6 最佳项目实践
  • 原文地址:https://www.cnblogs.com/zh-dream/p/13621037.html
Copyright © 2020-2023  润新知