- #!/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
一個均勻綁定cpu的shell
有時候,由於架構設計或其他業務本身特點原因,導致有些應用是由cpu很不均衡;處理集中在一個cpu是上;白白浪費其他CPU在睡覺。一個簡單辦法就是綁定到多個CPU;
綁定CPU是一個不錯技巧,但是不是殺手鐗,一般能提高10%性能;更好地辦法是優化架構,對於網絡處理性程序,綁定網卡中斷更犀利。
這裏分享一個小小的shell,綁定製定程序均勻負載到各個CPU上。
使用方法 $> ./bindcpu2p.sh progressname
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.