• 【2018夏季达沃斯】未来就业报告发布:机器将比人更“能干” 哪些职位更“吃香”? 2018-09-19
  • 西安市民:本想买点香菜吃火锅?比较后还是买了些肉 2018-09-19
  • 安吉发布乡村治理标准规范 2018-09-19
  • 华北能源监管局开展电网运行风险管控专项督查 2018-09-18
  • 马来西亚新山依斯干达特区吸资2531亿马币 ——凤凰网房产马来西亚 2018-09-18
  • 繁星戏剧挑战浸没式独角戏 2018-09-18
  • 领导干部自然资源资产离任审计制度试点 让福建省光泽县绿意盎然(图)-地方新闻-时政频道-中工网 2018-09-08
  • 人民日报评留美生数落父母:为亲情拓对话空间 2018-09-07
  • 网友给四川省委书记、省长留言获回复 共计25条 2018-09-07
  • 娱乐城新优惠 2018-09-06
  • 无人售货架现身出租车内 乘客扫码付款随时取走零食 2018-09-06
  • 江西公布拖欠劳动报酬典型案例 最高拖欠近200万元 2018-09-06
  • 做学习宣传贯彻人民领袖思想的排头兵 2018-09-06
  • 华夏幸福荣获2018中国品牌先锋大奖之杰出企业奖 2018-09-05
  • 10大路口因礼让斑马线致堵 济南交警推新规约束行人 ——凤凰网房产济南 2018-09-05
  • 通过配置CPU参数 worker_cpu_affinity 提升nginx性能

    栏目: nginx 发布于: 2013-09-03 11:26:46
    简介
    Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。

    规则设定
    (1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭

    (2)worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了

    示例:linode VPS 最低配,8核CPU,nginx配置信息:

    worker_processes 8;
    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

    CPU工作状况:(输入 top 后,按1 查看)


    top - 11:16:56 up 39 days,  1:16,  2 users,  load average: 0.09, 0.07, 0.10
    Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie
    Cpu0  :  0.0%us,  0.0%sy,  0.0%ni, 95.1%id,  0.0%wa,  0.0%hi,  0.0%si,  4.9%st
    Cpu1  :  0.0%us,  0.0%sy,  0.0%ni, 98.8%id,  0.0%wa,  0.0%hi,  0.0%si,  1.2%st
    Cpu2  :  2.3%us,  0.0%sy,  0.0%ni, 92.8%id,  0.0%wa,  0.0%hi,  0.0%si,  4.9%st
    Cpu3  :  4.6%us,  9.2%sy,  0.0%ni, 81.2%id,  0.0%wa,  0.0%hi,  0.0%si,  5.0%st
    Cpu4  :  1.9%us,  0.0%sy,  0.0%ni, 96.1%id,  0.0%wa,  0.0%hi,  0.0%si,  1.9%st
    Cpu5  :  0.0%us,  0.0%sy,  0.0%ni, 98.1%id,  0.0%wa,  0.0%hi,  0.0%si,  1.9%st
    Cpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu7  :  0.0%us,  0.0%sy,  0.0%ni, 96.9%id,  0.0%wa,  0.0%hi,  0.0%si,  3.1%st
    Mem:   1024884k total,   891244k used,   133640k free,   144852k buffers
    Swap:   262140k total,     4172k used,   257968k free,   434072k cached


    上面的配置表示:8核CPU,开启8个进程。00000001表示开启第一个cpu内核,00000010表示开启第二个cpu内核,依次类推;有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。

    配置实例:

    1、2核CPU,开启2个进程

    worker_processes  2;  
    worker_cpu_affinity 01 10;
    2、2核CPU,开启4进程
    worker_processes 4;
    worker_cpu_affinity 01 10 01 10;
    3、2核CPU,开启8进程


    worker_processes  8;  
    worker_cpu_affinity 01 10 01 10 01 10 01 10;


    4、8核CPU,开启2进程

    worker_processes  2;  
    worker_cpu_affinity 10101010 01010101;
    说明:10101010表示开启了第2,4,6,8内核,01010101表示开始了1,3,5,7内核 
    通过apache 的ab测试查看nginx对CPU的使用状况:


    top - 11:25:53 up 39 days,  1:25,  2 users,  load average: 0.33, 0.11, 0.09
    Tasks: 133 total,   3 running, 130 sleeping,   0 stopped,   0 zombie
    Cpu0  :  2.3%us,  0.9%sy,  0.0%ni, 82.7%id,  0.0%wa,  0.0%hi,  0.0%si, 14.1%st
    Cpu1  :  1.7%us,  0.6%sy,  0.0%ni, 81.8%id,  0.0%wa,  0.0%hi,  0.0%si, 16.0%st
    Cpu2  :  2.8%us,  1.9%sy,  0.0%ni, 74.4%id,  0.0%wa,  0.0%hi,  0.0%si, 20.9%st
    Cpu3  :  2.0%us,  0.9%sy,  0.0%ni, 83.0%id,  0.0%wa,  0.0%hi,  0.0%si, 14.0%st
    Cpu4  :  2.2%us,  0.8%sy,  0.0%ni, 79.3%id,  0.0%wa,  0.0%hi,  0.0%si, 17.6%st
    Cpu5  :  3.6%us,  1.1%sy,  0.0%ni, 75.9%id,  0.0%wa,  0.0%hi,  0.0%si, 19.5%st
    Cpu6  :  2.1%us,  0.9%sy,  0.0%ni, 87.2%id,  0.0%wa,  0.0%hi,  0.0%si,  9.8%st
    Cpu7  :  1.7%us,  0.6%sy,  0.0%ni, 80.6%id,  0.0%wa,  0.0%hi,  0.0%si, 17.1%st
    Mem:   1024884k total,   891020k used,   133864k free,   144912k buffers
    Swap:   262140k total,     4172k used,   257968k free,   434244k cached


    如果多个CPU内核的利用率都相差不多,证明nginx己经成功的利用了多核CPU。
    测试结束后,CPU内核的负载应该都同时降低。 

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:通过配置CPU参数 worker_cpu_affinity 提升nginx性能
    IT技术书籍推荐:
    Python学习手册(第4版)
    Python学习手册(第4版)
    鲁特兹 (Mark Lutz) (作者), 李军 (译者), 刘红伟 (译者), 等 (译者)
    《Python学习手册(第4版)》内容简介:学习Python的主要内建对象类型:数字、列表和字典。使用Python语句创建和处理对象,并且学习Python的通用语法模型。使用函数构造和重用代码,函数是Python的基本过程工具。学习Python??椋悍庾坝锞?、函数以及其他工具,以便构建较大的组件。学习Python的面向对象编程工具,用于组织程序代码。学习异常处理模型,以及用于编写较大程序的开发工具。了解高级Python工具,如装饰器、描述器、元类和Unicode处理等。