技术源 WWW.JOCK168.COM
Nginxyabo888vip手机版性能优化之多核yabo888vip手机版

发布于:2016-05-31 14:19亚博vip手机版网页:

 

    Nginx对最大化利用CPU资源的yabo888vip手机版项有两个:一个是Nginx worker进程个数;另一个是绑定Nginx worker进程到指定的CPU内核上。
    一、Nginx worker进程个数
    语法格式:worker_processes number;
    默认值:worker_processes 1;
    上面的方式是定义在master/worker运行方式下,定义worker进程个数。worker进程的数量会直接影响性能。那么,yabo888vip手机版多少个worker进程才好呢?
    每个worker进程都是单线程的进程,它们会调用各个模块以实现各种不同功能。如果确认这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该yabo888vip手机版多少个进程;反之,如果可能出现阻塞式调用,那么需要yabo888vip手机版稍多一些的worker进程。
    多worker进程可以充分利用多核资源,但过多的worker进程却会增大进程间切换带来的消耗。一般情况下,yabo888vip手机版与CPU内核数相等的worker进程,并且使用worker_cpu_affinityyabo888vip手机版来绑定CPU内核。
    二、绑定Nginx worker进程到指定的CPU内核上
    语法格式:worker_cpu_affinity cpumask
    为什么要绑定worker进程到指定的CPU内核上呢?假设每一个worker进程都非常繁忙,如果多个worker进程都在抢同一个CPU,那么这就会出现同步问题。反之,如果每一个worker进程都独享一个CPU,就会在内核的调度策略上实现完全的并发。
    
    规则设定:
    (1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭
    (2)worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了

    使用方法和范例:

    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表示开启第二个和第四个内核

    5、8核CPU开启8个进程

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

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

 
  • 链接

  • 百度
  • 新浪
  •