Shell脚本实现把进程负载均衡到多核CPU中
更新时间:2014年06月21日 10:38:49 投稿:junjie
这篇文章主要介绍了Shell脚本实现把进程负载均衡到多核CPU中,可以把进程指定运行在某个CPU中,需要的朋友可以参考下
有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉。这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高。
虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀;所以最好的办法是优化你的程序架构。
在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上。
复制代码 代码如下:
#!/bin/sh
pids=`/sbin/pidof $1`
cpunum=`cat /proc/cpuinfo | grep processor | wc -l`
cpuidx=0
for pid in $pids
do
/usr/bin/taskset -cp ${cpuidx} ${pid}
cpuidx=$(($cpuidx+1))
cpuidx=$(($cpuidx%$cpunum))
echo $cpuidx
done
pids=`/sbin/pidof $1`
cpunum=`cat /proc/cpuinfo | grep processor | wc -l`
cpuidx=0
for pid in $pids
do
/usr/bin/taskset -cp ${cpuidx} ${pid}
cpuidx=$(($cpuidx+1))
cpuidx=$(($cpuidx%$cpunum))
echo $cpuidx
done
使用方法 $> ./bindcpu2p.sh progressname
注:请兄弟们检视下代码,能帮忙调试下就最好不过了。
相关文章
shell脚本学习指南[四](Arnold Robbins & Nelson H
这篇文章主要介绍了shell脚本学习指南[四](Arnold Robbins & Nelson H.F. Beebe著),需要的朋友可以参考下2014-02-02Linux删除指定字符串内容及以前的字符串内容\以后的字符串内容(最新推荐)
这篇文章主要介绍了Linux删除指定字符串内容及以前的字符串内容\以后的字符串内容,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-02-02linux shell循环:for、while、until用法详解
这篇文章主要介绍了linux shell下常用的循环for、while、until的用法,这也是脚本之家小编看到的比较详细的文章了,感兴趣的朋友可以参考一下,最好是在环境下自己手工打一份,不要复制2019-04-04
最新评论