通过配置worker_cpu_affinity参数提升nginx性能

简介

Nginx默认没有开启利用多核CPU,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU的性能。CPU是任务处理,计算最关键的资源,CPU核越多,性能就越好。

规则设定
  • CPU有多少个核,就有几位数,1代表内核开启,0代表内核关闭
  • 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表示该内核关闭。

配置实例

2核CPU,开启2个进程:

worker_processes 2;
worker_cpu_affinity 01 10;

2核CPU,开启4进程:

worker_processes 4;
worker_cpu_affinity 01 10 01 10;

2核CPU,开启8进程:

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

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内核的负载应该都同时降低。

注:以上内容转载自http://www.php230.com/set-worker-cpu-affinity-to-up-nginx-performance.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值