nginx cpu亲和性修改笔记(一)

在nginx服务器上,对多颗cpu做亲和性绑定

CPU亲和性修改

#taskset -p  mask  pid 
pID和-p之间加上CPU掩码!
CPU掩码:假设有4课CPU,第一颗便是:0000,第二颗0001,第三颗0101,第四颗1111


也可使用-c选项提供都好分开的独立处理器,或者一组处理器列表,如下:
#taskset -c 0,1,2-4 -- myprogram
从第0颗开始,以逗号分隔


查看服务运行在那棵cpu上:
#ps axo psr,comm,pid
便可以看到服务运行cpu的状态。

例:
将PID为11215修改到第三颗cpu,如下:
#taskset -p -c 3 11215



cat /proc/cpuinfo查看cpu信息

不过,这种绑定下次启动PID可能将会改变。

然而这种绑定并没有起到理想的状态
vim /etc/grub.conf
在kernel 后加上isol=2,3,
这种方式也只能隔离CPU,仍然不能隔离中断,如果需要,则需要中断绑定



中断隔离;

中断查看:cat /proc/interrupts
一般情况cpu0的中断相对较多
假设4颗CPU,将2和3隔离到0,1


查看下目录
ls /proc/irq/
使用IRQ数定位正确的smp_affinity文件
cat /proc/irq/0/smp_affinity
smp_affinity默认为f(64位的操作系统为两组f,每一个f为4位)即可为系统中任意的cpu提供的IRQ。将这个值设定为1,如下,即表示只有cpu 0可以提供这个中断
#echo 1 > /proc/irq/32/smp_affinity
#cat  /proc/irq/32/smp_affinity
1
如果将其他U的系统中断定义到0上面,那么其他U的中断则被清到0上,这个依然需要系统脚本来实现。
当然,这种极限压榨系统性能可能会造成系统不稳定。生产环境还是规范处理,亲和性CPU绑定是可以的。


numactl结构遇到的可能不太多,numad进行CPU绑定。

进程优先级,nice,renice

cpu实时优先级和策略


1 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2015-08-21分类: Nginx

标签: 调优

发表评论

已有 3 条评论

加载中,请稍候...
  1. 小黑啊
    小黑啊
    August 24th, 2015 at 03:07 pm

    你现在配置nginx了。

    1. 大黑啊
      大黑啊
      August 24th, 2015 at 03:32 pm

      要死了最近

  2. 控企鹅
    September 18th, 2015 at 02:58 am

    你现在配置nginx了。