当前位置:文档之家› 配置Nginx多核CPU,worker_cpu_affinity使用方法和范例

配置Nginx多核CPU,worker_cpu_affinity使用方法和范例

wstech@https://www.doczj.com/doc/6b15640564.html, wfx123 你自己进去看

经我实践配置,多cpu+gzip+N多小文件+文件总大小大大超过内存 的环境(BBS啦~),设置为cpu的两倍较好




----------------------------------


配置Nginx多核CPU,worker_cpu_affinity使用方法和范例 (2011-07-26 17:33:33)转载▼
标签: 育儿 分类: Nginx
Nginx默认没有开启利用多核CPU,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU。CPU是任务处理,计算最关键的资源,CPU核越多,性能就越好。
配置Nginx多核CPU,worker_cpu_affinity使用方法和范例
1. 2核CPU,开启2个进程

worker_processes 2;
worker_cpu_affinity 01 10;

01表示启用第一个CPU内核,10表示启用第二个CPU内核
worker_cpu_affinity 01 10;表示开启两个进程,第一个进程对应着第一个CPU内核,第二个进程对应着第二个CPU内核。
2. 2核CPU,开启4个进程

worker_processes 4;
worker_cpu_affinity 01 10 01 10;

开启了四个进程,它们分别对应着开启2个CPU内核
3. 4核CPU,开户4个进程

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推
4. 4核CPU,开启2个进程

worker_processes 2;
worker_cpu_affinity 0101 1010;

0101表示开启第一个和第三个内核,1010表示开启第二个和第四个内核
2个进程对应着四个内核
worker_cpu_affinity配置是写在/etc/nginx/nginx.conf里面的。
2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。

5. 8核CPU,开户8个进程

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

0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推

worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。
配置完毕后,重启nginx ,执行/etc/init.d/nginx restart
测试nginx是否有用到多个CPU内核 ,在另一台机器上执行ab.exe -c 1000 -n 1000 https://www.doczj.com/doc/6b15640564.html,/index.php
ab.exe是装apache后带的一个性能测试工具,它可以模拟多客户端的并发请求。
在服务器上执行top,然后按1,就可以看到CPU内核的工作情况。如果多个CPU内核的利用率都相差不多,证明nginx己经成功的利用了多核CPU。
测试结束后,CPU内核的负载应该都同时降低。


-----------------------------------



在事件模块这一章中

我们将使用worker_processes和worker_connections来计算理论最大连接数(max_clients):
max_clients = worker_processes * worker_connections



----------------------------------

ifonedayLinux
nginx进程设置方法, worker_processes 1;
查看CPU个数:cat /proc/cpuinfo | grep processor
配置1:4 CPU (4 Core) + 4 worker_processes (每个worker_processes 使用1个CPU)
worker_processes 4;worker_cpu_affinity 0001 0010 0100 1000;

配置2:8 CPU (8 Core) + 8 worker_processes (每个worker_processes 使用1个CPU)
worker_processes 8;worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

配置3:16 CPU (16 Core) + 16 worker_processes (每个worker_processes 使用1个CPU)
worker_cpu_affinity 0000000000000001 0000000000000010 0000000000000100 0000000000001000 0000000000010000
0000000000100000 0000000001000000 0000000010000000 0000000100000000 0000001000000000
0000010000000000 0000100000000000 0001000000000000 0010000000000000 0100000000000000 1000000000000000;

--------------------------------------



worker_processes=CPU核数,开多没用~
max_children=也就主要调节这个,具体自己从5-8开始,看看内存使用如何,有太多空余就继续往上调,正常运作下大概留100-120的内存空余以防特殊情况就够了~

相关主题
相关文档 最新文档