有时候,由于架构设计或其他业务本身特点原因,导致有些应用是由cpu很不均衡;处理集中在一个cpu是上;白白浪费其他CPU在睡觉。一个简单办法就是绑定到多个CPU;
绑定CPU是一个不错技巧,但是不是杀手锏,一般能提高10%性能;更好地办法是优化架构,对于网络处理性程序,绑定网卡中断更犀利。
这里分享一个小小的shell,绑定制定程序均匀负载到各个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
阅读(7274) | 评论(0) | 转发(11) |