美文网首页
006-CPU优化常见方法

006-CPU优化常见方法

作者: 0981b16f19c7 | 来源:发表于2019-07-06 17:03 被阅读0次

    应用程序优化

    编译器优化

    算法优化

    使用复杂度更低的算法,可以显著加快处理速度。

    异步处理

    使用异步处理,可以避免程序因为等待某个资源而一直阻塞,从而提升程序的并发处理能力。比如,把轮询替换为事件通知,就可以避免轮询耗费 CPU 的问题。

    多线程替代多进程

    线程的上下文切换成本小于进程的上下文切换成本。

    善用缓存

    经常访问的数据或者计算过程中的步骤,可以放到内存中缓存起来,,这样在下次用时就能直接从内存中获取,加快程序的处理速度。

    系统优化

    一方面要充分利用CPU缓存的本地性,加速缓存访问;另一方面,要控制进程的CPU使用情况,减少进程间的相互影响。

    CPU绑定

    把进程绑定到一个或者多个 CPU 上,可以提高 CPU 缓存的命中率,减少跨 CPU 调度带来的上下文切换问题。

    CPU独占

    跟 CPU 绑定类似,进一步将 CPU 分组,并通过 CPU 亲和性机制为其分配进程。这样,这些 CPU 就由指定的进程独占,换句话说,不允许其他进程再来使用这些 CPU。

    优先级调整

    使用 nice 调整进程的优先级,正值调低优先级,负值调高优先级。

    为进程设置资源限制

    使用 Linux cgroups 来设置进程的 CPU 使用上限,可以防止由于某个应用自身的问题,而耗尽系统资源。

    NUMA优化

    中断负载均衡

    无论是软中断还是硬中断,它们的中断处理程序都可能会耗费大量的 CPU。开启 irqbalance 服务或者配置 smp_affinity,就可以把中断处理过程自动负载均衡到多个 CPU 上。

    相关文章

      网友评论

          本文标题:006-CPU优化常见方法

          本文链接:https://www.haomeiwen.com/subject/sdxmhctx.html