系统优化
CPU 绑定:可提高 CPU 缓存的命中率,减少跨 CPU 调度带来的上下文切换问题
CPU 独占:进一步将 CPU 分组,通过 CPU 亲和性机制为其分配进程
适当降低非核心应用的优先级,增高核心应用的优先级,可确保核心应用得到优先处理
使用 Linux cgroups 设置进程 CPU 使用上限,可防止由于某个应用自身的问题而耗尽系统资源
支持 NUMA 的处理器会被划分为多个 node,每个 node 都有自己的本地内存空间
开启 irqbalance 服务或者配置 smp_affinity,把中断处理过程自动负载均衡到多个 CPU 上
用户可打开文件的最大数目 ulimit -n 和 /etc/security/limits.conf nofile
用户可开启进程/线程的最大数目 ulimit -u 和 /etc/security/limits.conf noproc
问题排查
上下文切换过多
自愿切换过多:进程在等待资源,可能发生 I/O 问题
非自愿切换过多:进程在被强制调度、争抢 CPU,CPU 成为瓶颈
中断次数变多:说明 CPU 被中断处理程序占用,应分析中断类型
使用率过高
用户 CPU 和 Nice CPU 高:用户态进程占用了较多 CPU,着重排查进程性能问题
系统 CPU 高:内核态占用了较多 CPU,着重排查内核线程或系统调用的性能问题
I/O 等待 CPU 高:等待 I/O 的时间比较长,着排查系统存储是否出现 I/O 问题
软中断和硬中断高:软中断或硬中断处理程序占用较多 CPU,着重排查内核中断服务程序
不断重启的进程:同名进程 pid 不断改变
软中断过多