鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

基础组件参数

调度器子系统

表1 调度器子系统-系统参数

参数名称

参数含义

参数范围

性能敏感场景

调优建议

参数查看/设置方式

kernel.numa_balancing

自动NUMA(非一致性内存访问)平衡

{0, 1}

-

在不进行CPU绑核的场景下,建议将该参数配置为1。

查看:sysctl param

设置:sysctl param=value

说明:

其中param表示参数名称,value表示需配置的参数取值。

kernel.sched_child_runs_first

子进程的CPU优先调度权

{0, 1}

TensorFlow Serving

-

kernel.sched_cluster

cluster调度亲和

{0, 1}

MySQL、Redis、TensorFlow Serving

建议设置为1 ,启用cluster调度亲和。

kernel.sched_migration_cost_ns

进程迁移的最小成本阈值

[100000, 5000000]

TensorFlow Serving

-

kernel.sched_nr_migrate

调度器在负载均衡时迁移的任务数量

[1, 128]

TensorFlow Serving

-

kernel.sched_wakeup_granularity_ns

任务唤醒时的调度延迟阈值

[100000, 15000000]

TensorFlow Serving

-

I/O子系统

表2 I/O子系统-系统参数

参数名称

参数含义

参数范围

性能敏感场景

调优建议

参数查看/设置方式

max_sectors_kb

块设备单次I/O操作的数据大小

[68, 128]

MySQL

对于顺序读写密集型业务,可适当增大该参数以提升吞吐量;对于随机I/O延迟敏感业务,应适当减小该参数以优化响应时间。

查看/修改文件内容:

/sys/block/block_device /queue/max_sectors_kb

说明:

其中block_device表示需替换为实际主机的块设备名称。

scheduler

块设备I/O调度策略

{mq-deadline, kyber,bfq, none}

MySQL、openGauss

建议根据具体应用类型选择该参数的配置。

查看/修改文件内容:

/sys/block/block_device /queue/scheduler

内存管理子系统

表3 内存管理子系统-系统参数

参数名称

参数含义

参数范围

性能敏感场景

调优建议

参数查看/设置方式

transparent_hugepage_mode

透明大页的启用状态

{madvise, never, always}

Redis、Hive、Spark、Kafka、TensorFlow Serving

建议将该参数配置为always。

查看/修改文件内容:

/sys/kernel/mm/transparent_hugepage/enabled

vm.dirty_background_ratio

触发后台刷写将脏页写回磁盘的脏内存占总内存的最大百分比阈值

[0, 100]

RocksDB

在延迟敏感的应用场景下,建议适当增大该参数,以降低刷盘频率,从而减少延迟波动。

查看:sysctl param

设置:sysctl param=value

vm.max_map_count

单个进程可以创建的最大内存映射(mmap)区域数

[65530, 10000000]

RocksDB

建议适当增大mmap映射区域数量。

vm.vfs_cache_pressure

回收用于目录和inode缓存(VFS cache)的倾向

[0, 500]

RocksDB

建议在内存紧张的环境下适当增大该值,避免缓存占用过多内存。

网络子系统

表4 网络子系统-系统参数

参数名称

参数含义

参数范围

性能敏感场景

调优建议

参数查看/设置方式

net.core.rps_sock_flow_entries

RPS(Receive Packet Steering)哈希表的大小

[0, 131072]

-

建议将该参数配置为较大的值。

查看:sysctl param

设置:sysctl param=value

Java Platform

表5 Java Platform参数

参数名称

参数含义

参数范围

参数设置方式

AlwaysPreTouch

JVM在启动初始化阶段是否提前访问并提交堆内存到物理内存

{on, off}

  • on:-XX:+param
  • off:-XX:-param

G1HeapRegionSize

G1堆划分的最小区域大小

{1m, 2m, 4m, 8m, 16m, 32m}

-XX:param=value

G1MaxNewSizePercent

G1年轻代在堆中占比的最大百分比

[20, 40]

-XX:param=value

需配合“-XX:+UnlockExperimentalVMOptions”使能

G1NewSizePercent

G1年轻代在堆中占比的初始百分比

[20, 40]

G1UseAdaptiveIHOP

是否启用自适应IHOP(Initiating Heap Occupancy Percent)

{on, off}

  • on:-XX:+param
  • off:-XX:-param

需配合“-XX:+UnlockExperimentalVMOptions”使能

MaxGCPauseMillis

垃圾回收最大暂停时间的目标值

[200, 500]

-XX:param=value

MaxJavaStackTraceDepth

异常堆栈跟踪的最大深度

[512, 1024]

ParallelGCThreads

STW工作线程数量

[16, 128]

UseNUMA

是否启用NUMA(非统一内存访问)优化

{on, off}

  • on:-XX:+param
  • off:-XX:-param

参数设置方式需结合具体应用的配置机制进行指定,例如:

  • Hive:可通过启动参数指定,例如:--hiveconf hive.tez.java.opts="-XX:+param -XX:param=value"
  • Flink:可在配置文件中指定,例如:env.java.opts配置项指定为“-XX:+param -XX:param=value