1.修改查询单个用户对文件描述符的使用限制,即打开文件的个数
2.修改查询单个用户最多拥有的进程数,即一个用户全部打开的最大进程数nginx
[root@localhost security]# egrep -v '^$|^#' limits.conf web
注意:重启生效。服务器
[root@localhost ~]# ulimit -u
65536
[root@localhost ~]# ulimit -n
65536cookie
优化内核:
/etc/sysctl.conf
默认配置:
net.ipv4.tcp_max_tw_buckets = 8192
net.ipv4.ip_local_port_range = 32768 60999
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 128
net.core.netdev_max_backlog = 1000
net.ipv4.tcp_max_orphans = 8192
net.ipv4.tcp_max_syn_backlog = 128
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_keepalive_time = 7200socket
修改后的配置:
[root@localhost etc]# sysctl -p
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 = 65535
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30tcp
注解:
net.ipv4.tcp_max_tw_buckets = 6000
设置timewait的值
net.ipv4.ip_local_port_range = 1024 65000
设置系统容许打开的端口范围值
net.ipv4.tcp_tw_recycle = 1
用于设置是否启用timeout快速回收
net.ipv4.tcp_tw_reuse = 1
设置是否开启从新使用,即容许将TIME-WAIT sockets从新用于新的TCP链接
net.ipv4.tcp_syncookies = 1
是否启用syncookies。若是启用,当出现syn等待队列溢出,则使用coookie来处理
net.core.somaxconn = 65535
web应用中listen函数的backlog。nginx定义的NGX_LISTEN_BACKLOG
net.core.netdev_max_backlog = 262144
设置被传输到队列数据包的最大数目,在网卡接收数据包的速率比内核处理数据包的速率快时,那么会出现排队现象,这个参数用于设置这个队列的大小
net.ipv4.tcp_max_orphans = 262144
设置Linux可以处理不属于任何进程的套子节数量,所谓不属于任何进程的进程就是孤儿进程。在快速、大量的链接中这种进程会不少,所以要适当设置,若是这种"孤儿"进程套接字数量大于这个指定的值,使用dmesg查看是会出现"too many of orphands sockes"的警告
net.ipv4.tcp_max_syn_backlog = 262144
记录还没有接收到客户端确认信息的链接请求的最大值
net.ipv4.tcp_synack_retries = 1
用于设置SYN重试的次数,在TCp的3次握手中的第二次握手,内核须要发送一个回应前面一个SYN的ACK的SYN。就是说为了打开对方的链接,内核发出的SYN的次数。减小该参数有利于避免DDOS***
net.ipv4.tcp_syn_retries = 1
设置在内核放弃创建链接以前发送SYN包的数量
net.ipv4.tcp_fin_timeout = 1
表示若是套接字由本段要求关闭,这个参数决定了它保持在FIN_WAIT_2状态的时间。对端能够出错并永远不关闭链接,甚至之外宕机。能够按此设置,但要记住的是,即便是一个轻载的web服务器,也有由于大量的死套接字而内存溢出的风险,FIN-WAIT-2的危险性比FIN-WAIT-1要小,由于它嘴都只能消耗1.5KB的内存,可是它的生存期要长一些。
net.ipv4.tcp_keepalive_time = 30
当启用keeplive的时候,改参数用于设置TCP发送keeplive消息的频度ide