内容纲要
  1. 有选择的关闭访问日志,在 Nginx 中的区段有:http、server、location等,可以在这些区段中适当地配置日志记录。
  2. 使用 epoll

[code]
worer_connections 65535
keepalive_timeout 60
client_header_buffer_size 8k (通过 "getconf PAGESIZE" 命令来获取页面的大小)
worker_rlimit_nofile 65535
[/code]

优化资源限制

在 Linux 中执行以下两条命令:

[code]
[root@mail html]# ulimit -n
1024
[root@mail html]# ulimit -u
8040
[/code]

第一条命令,是用于查询单个用户对文件描述符的使用限制,即打开文件的个数,在 Linux 系统中默认值为 1024,即单个用户只能打开 1024 个文件。

第二条命令,是用于查询单个用户最多拥有的进程数,即一个用户所能打开的最大进程数量,在 Linux 系统中默认值是 8040。

对于一个高并发的 Nginx 服务器来说,显然这两个指标值是不够的,因此要对它们进行调整。

调整这两个指标值的方法是通过在 limits.conf 文件中添加以下配置:

[code]
[root@master ~]# vi /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
[/code]

需要重新启动系统才会生效。再次查看:

[code]
[root@master ~]# ulimit -n
65535
[root@master ~]# ulimit -u
65535
[/code]

优化写磁盘操作

关闭写文件访问日期

[code]
/dev/sdb1 /dataext3 defaults 0 0
[/code]

改为如下配置

[code]
/dev/sdb1 /dataext3 defaults,noatime,nodiratime 0 0
[/code]

然后重启,如果不能重启,则重新挂载

[code]
$ mount -o defaults,noatime,nodiratime -o remount /dev/sdb1 /sdb
$ mount |grep sdb1
[/code]

如果是单独挂载的分区或磁盘( 包括 RAID)

[code]
$ mount -o defaults,noatime,nodiratime /dev/sdb1 /sdb
$ mount |grep sdb1
[/code]

优化内核 TCP 选项

修改以下 Linux 内核参数:

[code]
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog =262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30

[/code]

发表评论

电子邮件地址不会被公开。 必填项已用*标注