Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1838910
  • 博文数量: 38
  • 博客积分: 690
  • 博客等级: 中士
  • 技术积分: 3714
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-27 14:06
文章分类

全部博文(38)

文章存档

2018年(8)

2016年(4)

2015年(2)

2014年(1)

2013年(3)

2012年(20)

分类: LINUX

2012-07-16 10:36:11

有时候,由于架构设计或其他业务本身特点原因,导致有些应用是由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
阅读(7170) | 评论(0) | 转发(11) |
给主人留下些什么吧!~~