[性能优化]通过Shell实现将进程负载均衡到CPU多核

有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉。这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高。

虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀;所以最好的办法是优化你的程序架构。

在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上。

#!/bin/sh
    pids=`/sbin/pidof <span class="katex math inline">1`
    cpunum=`cat /proc/cpuinfo | grep processor | wc -l`

    cpuidx=0
    for pid in</span>pids
    do
        /usr/bin/taskset -cp <span class="katex math inline">{cpuidx}</span>{pid}
        cpuidx=<span class="katex math inline">((</span>cpuidx+1))
        cpuidx=<span class="katex math inline">((</span>cpuidx%<span class="katex math inline">cpunum))
        echo</span>cpuidx
    done

使用方法 $> ./bindcpu2p.sh progressname

注:请兄弟们检视下代码,能帮忙调试下就最好不过了。

本文链接:http://www.yunweipai.com/1056.html

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/53159.html

(0)
上一篇 2021年8月6日 17:58
下一篇 2021年8月6日 17:58

相关推荐

发表回复

登录后才能评论