在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用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 使用方法 $> ./bindcpu2p.sh progressname 注:请兄弟们检视下代码,能帮忙调试下就最好不过了。 |
请发表评论