高并发系统:池化技术-Tomcat、Undertow连接池
Tomcat配置核心参数:
max-threads:该线程池可以容纳的最大线程数。默认值:200server.tomcat.max-threads=1000
max-connections:接受和处理的最大连接数server.tomcat.max-connections=20000
min-SpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。server.tomcat.min-SpareThreads=20
acceptCount:可以放到处理队列中的请求数server.tomcat.acceptCount=700
connectionTimeout 连接超时server.tomcat.connectionTimeout=1000
Undertow配置核心参数
**io-threads:**设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程.不要设置过大,如果过大,启动项目会报错:打开文件数过多server.undertow.io-threads=16
**worker-threads:*阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程,它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数8server.undertow.worker-threads=256
**buffer-size:**该配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理,每块buffer的空间大小,越小的空间被利用越充分,不要设置太大,以免影响其他应用,合适即可server.undertow.buffer-size=1024
**buffers-per-region:**每个区分配的buffer数量 , 所以pool的大小是buffer-size * buffers-per-regionserver.undertow.buffers-per-region=1024
**direct-buffers:**是否分配的直接内存(NIO直接分配的堆外内存)server.undertow.direct-buffers=true