5d6d网 发表于 2016-12-28 09:01:31

nginx的 CPU参数worker_processes和worker_cpu_affinity使用说明 .

  官方说明:
  http://wiki.nginx.org/NginxChsHttpMainModule#worker_cpu_affinity
  http://wiki.nginx.org/NginxChsHttpMainModule#worker_processes
  worker_cpu_affinity这个参数要结合 worker_processes来一起使用。
  其中 先说 worker_processes。
  worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。 一般为当前机器总cpu核心数的1到2倍。如,我的机器为双核,那么开4个足够了。

view plaincopyprint?




[*]worker_processes 4;  



worker_processes 4;
  
然后说下worker_cpu_affinity。
  先看一个例子:

view plaincopyprint?




[*]worker_processes 4;  
[*]worker_cpu_affinity 0001 0010 0100 1000;  



worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
  分别给每个worker进程绑定一个CPU.
  最关键的地方没说清楚,怎样来表示每个CPU?
  引用下前辈的视图
  http://www.getcn.net/media/uploadfile/201104/20110413212946905.jpg
那么,16核的cpu每个进程分配到一个cpu就应该是
http://www.getcn.net/media/uploadfile/201104/20110413213009772.jpg




  如,我的双核cpu开两个进程,为

view plaincopyprint?




[*]worker_processes     2;  
[*]worker_cpu_affinity 01 10;  



worker_processes   2;
worker_cpu_affinity 01 10;
  
若要2核CPU开4进程,那么可以写为:

view plaincopyprint?




[*]worker_processes     4;  
[*]worker_cpu_affinity 01 10 01 10;  



worker_processes   4;
worker_cpu_affinity 01 10 01 10;
  
2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。
worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。
配置完毕后,重启nginx 。ok!
页: [1]
查看完整版本: nginx的 CPU参数worker_processes和worker_cpu_affinity使用说明 .