1.修改查询单个用户对文件描述符的使用限制,即打开文件的个数 2.修改查询单个用户最多拥有的进程数,即一个用户所有打开的最大进程数

[root@localhost security]# egrep -v '^$|^#' limits.conf

  •   soft	nofile		65536
    
  •   hard	nofile		65536
    
  •   soft	nproc		65536
    
  •   hard	nproc		65536
    

注意:重启生效。

[root@localhost ~]# ulimit -u 65536 [root@localhost ~]# ulimit -n 65536

优化内核: /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 = 7200

修改后的配置: [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 = 30

注解: 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消息的频度