zoukankan      html  css  js  c++  java
  • 查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等

    一、修改最大连接数
    1、查看当前文件描述符的限制数目的命令:
    ulimit -n
    2、修改文件描述符的限制数目
    2.1 临时改变当前会话:
    ulimit -n 65536
    2.2 永久变更需要下面两个步骤:
    1) 修改/etc/security/limits.conf 文件(不要忘记前面的*),如下:
    vi /etc/security/limits.conf
    *               soft    nofile           570000
    *               hard    nofile           570000
    保存退出后重新登录,其最大文件描述符已经被永久更改了;但是需要经过下面的步骤2)之后才能生效。
    2) 重新加载库:
    打开文件:
    vi /etc/pam.d/login
    在最后加上:
    session    required /lib64/security/pam_limits.so
    即可
    3.查看和修改系统的最大打开文件限制
    位置: /proc/sys/fs/file-max
    查看命令
     cat /proc/sys/fs/file-max
    修改:
    通过vi修改 /etc/sysctl.conf 文件,在该文件中加上:
    fs.file-max=655350
    可以在令针对此参数 的修改一直生效,在该文件中,修改完后执行命令:
    sysctl -p
    使修改立即生效,而无需重启;
    可使用下面两条命令验证一下修改是否成功:
    cat /proc/sys/fs/file-max
    或者
    sysctl fs.file-max
    4.修改nr_open,通过vi修改 /etc/sysctl.conf,在该文件中加上:
    fs.nr_open = 2000000
    可以在令针对此参数 的修改一直生效,在该文件中,修改完后执行命令:
    sysctl -p
    使修改立即生效,而无需重启;
    注意:

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

    b.    单个进程打开的文件描述符数不能超过user limit中nofile的soft limit

    c.    nofile的soft limit不能超过其hard limit

    d.    nofile的hard limit不能超过/proc/sys/fs/nr_open

    二、修改端口限制
    主要是对内核参数sysctl.conf的优化,/etc/sysctl.conf 是用来控制linux网络的配置文件,对于依赖网络的程序(如web服务器和cache服务器)非常重要,RHEL默认提供的最好调整。推荐配置(把下面内容添加进去):
      

    net.ipv4.ip_local_port_range = 1024 65535
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_rmem = 4096 87380 16777216
    net.ipv4.tcp_wmem = 4096 65536 16777216
    net.ipv4.tcp_fin_timeout = 10
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_window_scaling = 0
    net.ipv4.tcp_sack = 0
    net.core.netdev_max_backlog = 30000
    net.ipv4.tcp_no_metrics_save = 1
    net.core.somaxconn = 22144
    net.ipv4.tcp_syncookies = 0
    net.ipv4.tcp_max_orphans = 262144
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    vm.overcommit_memory = 1
    fs.file-max = 2000000
    fs.nr_open = 2000000

     

      这个配置参考于cache服务器varnish的推荐配置和SunOne 服务器系统优化的推荐配置。这里有个对端口范围的限制如果不做修改原始的返回只有2.8万个port区间。
    对上述内存参数的具体操作命令示例:
    1)查看端口范围:
    [root@slave2 sub_client]# sysctl -a | grep range
    net.ipv4.ip_local_port_range = 1024 65000
    2)修改内核参数sysctl.conf,打开该文件,
    vi /etc/sysctl.conf
    如果文件中有参数net.ipv4.ip_local_port_range的配置,则将其修改为:
    net.ipv4.ip_local_port_range = 1024 65000
    否则,直接加上这句话。
    3)让配置立即生效:
    sysctl -p
    另外,端口范围参数net.ipv4.ip_local_port_range不要超过1024和65535,1024以下系统使用,65535以上设置会会提示失败:
    error: "Invalid argument" setting key "net.ipv4.ip_local_port_range"

    三、查看linux下虚拟内存情况

           使用命令free,例如:

    [root@cddserver1 log_rd]# free
                      total               used        free          shared    buffers     cached
    Mem:       7950788    1144080    6806708          0       51432      832588
    -/+ buffers/cache:     260060      7690728
    Swap:      8093688       9764         8083924

    -------------------------------------------------

    在linux kernel 2.6.25之前通过ulimit -n(setrlimit(RLIMIT_NOFILE))设置每个进程的最大打开文件句柄数不能超过NR_OPEN (1024*1024),也就是100多w(除非重新编译内核),而在25之后,内核导出了一个sys接口可以修改这个最大值(/proc/sys/fs /nr_open).具体的changelog

  • 相关阅读:
    手脱ASPack2.12壳(练习)
    手脱UPX3.91壳(练习)
    如何在程序执行前插入可执行代码(算是吾爱的作业吧,活学活用)
    小米笔记本粉丝感恩狂欢趴【慎入!!】
    picpick截屏软件脱壳
    JAVA反序列化漏洞
    Java中的数据类型
    Java中常见的包
    Scrapy
    PHPstorm 函数时间注释的修改
  • 原文地址:https://www.cnblogs.com/saryli/p/9729372.html
Copyright © 2011-2022 走看看