15.4. 高级 Undertow 配置
15.4.1. IO 配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
从 PAXWEB-1255 开始,可以更改监听器使用的 XNIO worker 和缓冲池的配置。在 undertow.xml 模板中,有一个部分指定某些 IO 相关参数的默认值:
<!-- Only "default" worker and buffer-pool are supported and can be used to override the default values used by all listeners
buffer-pool:
- buffer-size defaults to:
- when < 64MB of Xmx: 512
- when < 128MB of Xmx: 1024
- when >= 128MB of Xmx: 16K - 20
- direct-buffers defaults to:
- when < 64MB of Xmx: false
- when >= 64MB of Xmx: true
worker:
- io-threads defaults to Math.max(Runtime.getRuntime().availableProcessors(), 2);
- task-core-threads and task-max-threads default to io-threads * 8
-->
<!--
<subsystem xmlns="urn:jboss:domain:io:3.0">
<buffer-pool name="default" buffer-size="16364" direct-buffers="true" />
<worker name="default" io-threads="8" task-core-threads="64" task-max-threads="64" task-keepalive="60000" />
</subsystem>
-->
可以指定以下 buffer-pool 参数:
buffer-size- 指定用于 IO 操作的缓冲区的大小。如果没有指定,则根据可用内存计算大小。
direct-buffers- 确定是否应使用 java.nio.ByteBuffer#allocateDirect 或 java.nio.ByteBuffer#allocate。
可以指定以下 worker 参数:
io-threads- 为 worker 创建的 I/O 线程数量。如果没有指定,则线程数量被设置为 CPU hieradata 2 的数量。
task-core-threads- 核心任务线程池的线程数量。
task-max-threads- worker 任务线程池的最大线程数量。如果没有指定,则最大线程数设置为 CPU Thycotic 16 的数量。