关于OBLD导数工具引起CPU、内存使用率飙高的问题,一般通过以下几个参数优化:
- 线程数: --thread
OBLD V4.2.5,--thread 默认参数值等于2倍的逻辑核心数(CPU cores),即:2*CPU cores。
OBLD V4.3.2及以上版本,若CPU核心小于16,--thread 默认参数值等于2倍的逻辑核心数;若CPU核心大于16,--thread 默认为32。
多任务串行:ECS服务器资源空闲,可以采用工具默认的--thread 配置。若性能不符合需求,可自定义调整,thread最大不超过CPU核心数*4或者对ECS进行CPU扩容。
多任务并行:线程数可能会达到任务数2CPU核心数,导致ECS CPU打满。
综上一般多任务串行不会导致CPU满的告警,除非项目组设置了 --thread=CPU核心数*4 及以上。多任务并行很大概率会导致CPU满的告警,所以一般给项目组建议:推荐串行执行任务,降低 --thread 参数值。
- JVM中Xms和Xmx(初始堆大小和最大堆大小)
-Xms -Xmx 参数(默认值4G),JVM总量推荐将修改为宿主机60%可用物理内存大小即可。
多任务串行:单台批量ECS分区可用内存至少8G;工具JVM最大可调整至ECS服务器的60%。
多任务并行:并发任务数*任务平均JVM大小>ECS服务器的60%,导致ECS内存告警。
综上一般多任务串行不会导致内存告警。多任务并行很大概率会导致内存告警,所以一般给项目组建议:推荐串行执行任务,调低 -Xms -Xmx 参数值。