Nginx 단순 성능 개선

7051 단어 nginx
Nginx          CPU (     ,               ),         worker_cpu_affinity           CPU。CPU     ,        ,CPU   ,     。

  Nginx  CPU,worker_cpu_affinity       

 、 2 CPU,  2   

worker_processes 2;

worker_cpu_affinity 01 10;



01       CPU  ,10       CPU  

worker_cpu_affinity 01 10;        ,           CPU  ,           CPU  。

 、 2 CPU,  4   

worker_processes 4;

worker_cpu_affinity 01 10 01 10;



       ,         2 CPU  

 、 4 CPU,  4                   

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;



0001       CPU  ,0010       CPU  ,    

 、 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       。

 、 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 http://www.domain.com

ab.exe  apache           ,              。

       top,   1,     CPU       。    CPU           ,  nginx          CPU。     ,CPU            。



worker_rlimit_nofile 65535;

         nginx              ,                  , :linux 2.6           65535,worker_rlimit_nofile       65535。



client_header_buffer_size 4k;

             ,                 ,              1k,   client_header_buffer_size  4k   ,  client_header_buffer_size       "      "    。

          getconf PAGESIZE   。



events {

     #     use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];

     use epoll;      #   epoll(linux2.6      )

     worker_connections 51200;         #         (    =   ×   )



     #       worker_processes   worker_connections    

     #   max_clients = worker_processes * worker_connections

     #             ,max_clients = worker_processes * worker_connections / 4

     #    IO  ,max_clients                 

     #               

     # cat /proc/sys/fs/file-max

}



/* ===================    [use epoll    ]    =================== */



1.             socket   (FD)

select                FD       , FD_SETSIZE  ,    2048。                IM          。                       ,                     ,              (    Apache  ),    linux            ,         ,                     ,            。   epoll       ,     FD              ,         2048,    , 1GB         10   ,       cat /proc/sys/fs/file-max   ,                 。



2. IO    FD         

   select/poll                  socket  ,        ,         socket "  " ,  select/poll               ,          。  epoll       ,    "  " socket    ---          epoll     fd   callback     。  ,  "  " socket         callback  ,  idle  socket   ,    ,epoll     " "AIO,         os  。    benchmark ,     socket        ---      LAN  ,epoll   select/poll     ,  ,      epoll_ctl,           。      idle connections  WAN  ,epoll      select/poll   。



3.   mmap              。

        epoll      。   select,poll  epoll      FD         ,                ,    ,epoll          mmap        。         2.5     epoll  ,         mmap    。



4.     

       epoll    ,    linux     。       linux  ,       linux            。  ,  TCP/IP          sk_buff  ,                 pool(skb_head_pool)   。   listen    2   (TCP  3           ),                。                                        NAPI      。

좋은 웹페이지 즐겨찾기