文件描述符指一切资源(包含socket、目录、文件、设备)

    1. #最大连接数
    2. echo 50000 > /proc/sys/net/core/somaxconn
    3. #立即回收tcp连接
    4. echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
    5. #空的tcp是否允许回收利用
    6. echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
    7. #不做洪水抵御
    8. echo 0 > /proc/sys/net/ipv4/tcp_syncookies
    9. ulimit -n 查看打开文件的数量
    10. ulimit -n 20000 设置最大打开的文件数量
    11. 永久性:在/etc/sysctl.conf中设置
    12. fs.file-max = 1000000
    1. $ sysctl -a|grep fs.file
    2. fs.file-max = 381721
    3. fs.file-nr = 1376 0 381721
    4. fs.xfs.filestream_centisecs = 3000
    5. $ cat /proc/sys/fs/file-nr
    6. 1344 0 381721
    7. 其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max

    所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max

    永久性:上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit为1800000,hard limit为2000000。以下设置需要注销之后重新登录才能生效:

    chanon soft nofile 1800000
    chanon hard nofile 2000000
    设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:

    单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
    nofile的soft limit不能超过其hard limit
    nofile的hard limit不能超过/proc/sys/fs/nr_open