mac环境undertow线程数问题

mac下undertow线程设置

springboot中undertow的线程设置如下:


server:

  undertow:

    threads:

      worker: xx

      io: xx

其io线程为当前cpu线程数:如以下为12线程:

1.png

默认worker线程数为:cpu线程数X8 ,在本机应该为12 * 8 = 96.

2.png

问题

在mac下发现线程数超过300无效,测试流程如下

设置worker线程为200时:生效

3.png

worker线程数设置为250:生效

4.png

worker线程数设置为300:不生效,最多只到260

5.png

分析

1. 修改worker线程数为400,发现还是维护在250左右,始终上不去

2. 初步怀疑并发数不够,提高并发数,发现基本无提升。

3. 其资源占用都不高,因此不是资源问题

4. 然后怀疑是由于mac下文件打开数限制导致,查看发现默认当前打开文件数只为256,


(base) ➜  ~ ulimit -a

-t: cpu time (seconds)              unlimited

-f: file size (blocks)              unlimited

-d: data seg size (kbytes)          unlimited

-s: stack size (kbytes)             8192

-c: core file size (blocks)         0

-v: address space (kbytes)          unlimited

-l: locked-in-memory size (kbytes)  unlimited

-u: processes                       5568

-n: file descriptors                256

直接修改为5000,重启发现生效。如图

6.png

你可能感兴趣的:(mac环境undertow线程数问题)