麒麟服务器系统【部分内核参数说明】
麒麟服务器系统【部分内核参数说明】
| 序号 | 内核参数 | 值 | 参数含义说明 | 备注 |
|---|---|---|---|---|
| 1 | net.core.dev_weight | 512 | 每个CPU一次NAPI中断能够处理网络包数量的最大值 | |
| 2 | net.core.rmem_max | 2097152 | 用于指定接收套接字缓冲区的最大大小,单位是字节 | |
| 3 | net.core.rmem_default | 2097152 | 用于指定接收套接字缓冲区的默认大小,单位是字节 | |
| 4 | net.core.wmem_max | 2097152 | 用于指定发送套接字缓冲区的最大大小,单位是字节 | |
| 5 | net.core.wmem_default | 2097152 | 用于指定发送套接字缓冲区的默认大小,单位是字节 | |
| 6 | net.core.message_burst | 50 | 用于控制在消息传递系统中,内核在一次处理周期内可以处理的最大消息数量 | |
| 7 | net.core.message_cost | 1 | 用于设置每个消息的成本度量值,主要用于防止拒绝服务(DoS)攻击,通过增加处理消息的成本来限制消息的频率 | |
| 8 | net.core.netdev_budget | 1024 | 每次软中断处理的网络包个数 | |
| 9 | net.core.netdev_max_backlog | 8000 | 设置当个别接口接收包的速度快于内核处理速度时允许的最大的包序列 | |
| 10 | net.core.netdev_tstamp_prequeue | 1 | 0:关闭,接收的数据包的时间戳在RPS程序处理之后进行标记,这样有可能时间戳会不够准确 1:打开,时间戳会尽可能早的标记 | |
| 11 | net.core.optmem_max | 524288 | 表示每个socket所允许的最大缓冲区的大小(字节) | |
| 12 | net.core.somaxconn | 512 | 定义了系统中每一个端口最大的监听队列的长度 | |
| 13 | net.ipv4.tcp_fin_timeout | 40 | 本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间 | |
| 14 | net.ipv4.tcp_invalid_ratelimit | 2000 | 用于限制发送重复确认(duplicate acknowledgments)的最大速率 | |
| 15 | net.ipv4.tcp_max_syn_backlog | 2048 | 对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目 | |
| 16 | net.ipv4.tcp_tw_recycle | 1 | 打开快速 TIME-WAIT sockets 回收 | |
| 17 | net.ipv4.tcp_tw_reuse | 1 | 表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。 0:关闭 1:打开 | |
| 18 | net.ipv4.tcp_thin_linear_timeouts | 1 | 用于控制“瘦TCP连接”(thin streams)的超时行为 | |
| 19 | net.ipv4.tcp_thin_dupack | 1 | 用于优化“瘦TCP连接”(thin streams)的重传行为 | |
| 20 | net.ipv4.tcp_limit_output_bytes | 1048576 | 用于限制每个 TCP 套接字在设备队列中排队的数据量 | |
| 21 | net.ipv4.icmp_errors_use_inbound_ifaddr | 1 | 当前为 ICMP 错误消息选择源地址的方式,是使用存在的接口地址 1:表示内核通过这个选项允许使用接收到造成这一错误的报文的接口的地址 | |
| 22 | vm.swappiness | 10 | 用于控制系统在使用交换空间(swap)和物理内存之间的平衡,该值越高则linux越倾向于将部分长期没有用到的页swap。 | |
| 23 | vm.vfs_cache_pressure | 40 | 表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache | |
| 24 | vm.dirty_ratio | 40 | 脏页所占的百分比(相对于所有可用内存,即空闲内存页+可回收内存页)达到dirty_ratio时,write调用会唤醒内核的flusher线程开始回写脏页数据,直到脏页比例低于此值,注意write调用此时会阻塞 | |
| 25 | kernel.sched_latency_ns | 3000000 | 表示正在运行进程的所能运行的时间的最大值,即使只有一个处于running状态的进程,运行到这个时间也要重新调度一次(以纳秒为单位,在运行时会自动变化?) 同时这个值也是所有可运行进程都运行一次所需的时间,每个CPU的running进程数 = sched_latency_ns / sched_min_granularity_ns | |
| 26 | kernel.sched_migration_cost_ns | 250000 | 该变量用来判断一个进程是否还是hot,如果进程的运行时间(now - p->se.exec_start)小于它,那么内核认为它的code还在cache里,所以该进程还是hot,那么在迁移的时候就不会考虑它 | |
| 27 | kernel.sched_min_granularity_ns | 300000 | 表示一个进程在CPU上运行的最小时间,在此时间内,内核是不会主动挑选其他进程进行调度(以纳秒为单位,在运行时会自动变化?) | |
| 28 | kernel.sched_wakeup_granularity_ns | 500000 | 该变量表示进程被唤醒后至少应该运行的时间的基数,它只是用来判断某个进程是否应该抢占当前进程,并不代表它能够执行的最小时间(sysctl_sched_min_granularity),如果这个数值越小,那么发生抢占的概率也就越高 | |
| 29 | kernel.sched_cfs_bandwidth_slice_us | 3000 | 用于控制 CFS(完全公平调度器)带宽控制中的时间片大小,单位是微秒 | |
| 30 | kernel.sched_autogroup_enabled | 1 | 启用后,内核会创建任务组来优化桌面程序的调度。它将把占用大量资源的应用程序放在它们自己的任务组。 0:禁止 1:开启 |