一個均勻綁定cpu的shell

有時候,由於架構設計或其他業務本身特點原因,導致有些應用是由cpu很不均衡;處理集中在一個cpu是上;白白浪費其他CPU在睡覺。一個簡單辦法就是綁定到多個CPU;

綁定CPU是一個不錯技巧,但是不是殺手鐗,一般能提高10%性能;更好地辦法是優化架構,對於網絡處理性程序,綁定網卡中斷更犀利。

這裏分享一個小小的shell,綁定製定程序均勻負載到各個CPU上。


  1. #!/bin/sh

  2. pids=`/sbin/pidof $1`
  3. cpunum=`cat /proc/cpuinfo | grep processor | wc -l`

  4. cpuidx=0
  5. for pid in $pids
  6. do
  7.     /usr/bin/taskset -cp ${cpuidx} ${pid}
  8.     cpuidx=$(($cpuidx+1))
  9.     cpuidx=$(($cpuidx%$cpunum))
  10.     echo $cpuidx
  11. done

使用方法 $>  ./bindcpu2p.sh  progressname
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章