首页 > 代码库 > 企业级Web Nginx 服务优化(2)

企业级Web Nginx 服务优化(2)

2.worker_cpu_affinity参数官方说明:

技术分享

技术分享

查看cpu的核数的情况:[root@nginx-01 conf]# grep "physical" /proc/cpuinfophysical id	: 0address sizes	: 42 bits physical, 48 bits virtual

top命令很好记得总结

输入top 按 1 来进行查看。

3.压力测试配置结果:

a.配置前压力测试结果:

技术分享

技术分享

通过观察,我们发现配置前不同CPU使用率相对平均。

b.配置worker_cpu_affinity后:

[root@nginx-01 conf]# grep worker_cpu nginx.conf
        worker_cpu_affinity 0001 0010 0100 1000;

压力测试结果如下:

技术分享

通过观察,我们发下配置后不同CPU使用率相对平均,和测试前变化不大。因此默认就比较平均,一方面是软件自身在逐渐的优化使用多核cpu,另一方面测试数据有待调整。

技术分享

  1. [root@nginx-01 conf]# man taskset

  2. TASKSET(1)                    Linux Users Manual                   TASKSET(1)

  3. NAME

  4.        taskset - retrieve or set a processs CPU affinity

  5. SYNOPSIS

  6.        taskset [options] mask command [arg]...

  7.        taskset [options] -p [mask] pid


其他服务可以来进行亲和 例如:mysql


技术分享

1.1.5事件处理模型的优化

nginx 的连接处理机制在于不同的操作系统采用不同的IO模型,在linux使用epoll的IP多路服用的模型,在freebsd使用kqueue的IO多路服用模型,在solaris使用/dev/poll方式的IO多复用模型,在windows使用的是icop等等。

根据系统类型不同选择不同use[kqueue|rtsig|epoll|/dev/poll/select|poll];该参数结合系统使用,不同系统使用参数不同,我们使用的是Centos6.5,因此我们调整为epoll模型。

1.具体的配置参数如下:

技术分享

2.官方说明:

技术分享

  1. [root@nginx-01 conf]# grep "epoll" nginx.conf

  2.     use epoll;

1.1.6调整单个进程允许的客户端最大的连接数

这个值是根据具体服务器性能程序的内存使用量来制定的(一个进程启动使用的内存根据程序确定)

技术分享

worker_connections官方说明:

技术分享

技术分享

技术分享

技术分享

技术分享

这个是每个worker进程的客户端连接数是多少。

1.1.7配置每个进程最大文件打开数:

技术分享

worker_rlimit_nofilenumber官方说明

技术分享

1.1.8优化服务器名字的hash表大小:

技术分享技术分享技术分享

出现了这种情况,那就需要将设置值扩大一倍:

技术分享

技术分享

server_names_hash_max_size:

技术分享

1.1.19开启高效文件传输模式

技术分享

技术分享


企业级Web Nginx 服务优化(2)