`

ulimit -n 修改最大 链接数

 
阅读更多

通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?

最正确的做法是在/etc/security/limits.conf里设置:

 

  1. [root@localhost security]# ulimit -a
  2. core file size          (blocks, -c) 0
  3. data seg size           (kbytes, -d) unlimited
  4. scheduling priority             (-e) 0
  5. file size               (blocks, -f) unlimited
  6. pending signals                 (-i) 30518
  7. max locked memory       (kbytes, -l) 64
  8. max memory size         (kbytes, -m) unlimited
  9. open files                      (-n) 1024
  10. pipe size            (512 bytes, -p) 8
  11. POSIX message queues     (bytes, -q) 819200
  12. real-time priority              (-r) 0
  13. stack size              (kbytes, -s) 10240
  14. cpu time               (seconds, -t) unlimited
  15. max user processes              (-u) 1024
  16. virtual memory          (kbytes, -v) unlimited
  17. file locks                      (-x) unlimited
  18. [root@localhost security]# ulimit -n 10240
  19. [root@localhost security]# ulimit -a
  20. core file size          (blocks, -c) 0
  21. data seg size           (kbytes, -d) unlimited
  22. scheduling priority             (-e) 0
  23. file size               (blocks, -f) unlimited
  24. pending signals                 (-i) 30518
  25. max locked memory       (kbytes, -l) 64
  26. max memory size         (kbytes, -m) unlimited
  27. open files                      (-n) 10240
  28. pipe size            (512 bytes, -p) 8
  29. POSIX message queues     (bytes, -q) 819200
  30. real-time priority              (-r) 0
  31. stack size              (kbytes, -s) 10240
  32. cpu time               (seconds, -t) unlimited
  33. max user processes              (-u) 1024
  34. virtual memory          (kbytes, -v) unlimited
  35. file locks                      (-x) unlimited
  36. [root@localhost security]#
  37. </font></font></font></font>
复制代码
1. 命令用法

命   令:ulimit
功   能:控制shell程序的资源
语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大 小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆栈大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
  
    补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。
  
    参  数:
   
    -a  显示目前资源限制的设定。  
   
    -c <core文件上限>  设定core文件的最大值,单位为区块。  
   
    -d <数据节区大小>  程序数据节区的最大值,单位为KB。  
   
    -f <文件大小>  shell所能建立的最大文件,单位为区块。  
   
    -H  设定资源的硬性限制,也就是管理员所设下的限制。  
   
    -m <内存大小>  指定可使用内存的上限,单位为KB。  
   
    -n <文件数目>  指定同一时间最多可打开的文件数。  
   
    -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。  
   
    -s <堆栈大小>  指定堆叠的上限,单位为KB。  
   
    -S  设定资源的弹性限制。  
   
    -t <CPU时间>  指定CPU使用时间的上限,单位为秒。  
   
    -u <进程数目>  用户最多可启动的进程数目。
  
    -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

2. 系统调优

    如前所述, ulimit -a 用来显示当前的各种用户进程限制。
    Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,
    设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
    ulimit -u 10000
     对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
     最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
     ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
     其他建议设置成无限制(unlimited)的一些重要设置是:

     数据段长度:ulimit -d unlimited
     最大内存大小:ulimit -m unlimited
     堆栈大小:ulimit -s unlimited
     CPU 时间:ulimit -t unlimited
     虚拟内存:ulimit -v unlimited
  
     暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
     永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:

1) 解除 Linux 系统的最大进程数和最大文件打开数限制:
        vi /etc/security/limits.conf
        # 添加如下的行
        * soft noproc 11000
        * hard noproc 11000
        * soft nofile 4100
        * hard nofile 4100
       说明:* 代表针对所有用户
            noproc 是代表最大进程数
            nofile 是代表最大文件打开数
2) 让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
        a、vi /etc/ssh/sshd_config
             把 UserLogin 的值改为 yes,并把 # 注释去掉
        b、重启 sshd 服务:
              /etc/init.d/sshd restart
3) 修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited

/**************************************

有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改2个文件。
1) /etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
2) /etc/pam.d/login
session required /lib/security/pam_limits.so
**********
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
***********
3) 一般用户的.bash_profile
#ulimit -n 1024
重新登陆ok

3. /proc目录:
1)/proc目录里面包括很多系统当前状态的参数,例如:引用
/proc/sys/fs/file-max
/proc/sys/fs/inode-max


是对整个系统的限制,并不是针对用户的;
2)proc目录中的值可以进行动态的设置,若希望永久生效,可以修改/etc/sysctl.conf文件,并使用下面的命令确认:

# sysctl -p


例如增加:

引用
fs.file-max=xxx
fs.inode-max=xxx

分享到:
评论

相关推荐

    linux的最大进程句柄数设置

    在 Linux 系统中,进程句柄数设置是一个重要的参数,它决定了单个进程能够打开的最大文件句柄数量,包括 socket 连接。系统默认值为 1024,这对于一般的应用来说已经足够使用。但是,对于需要处理大量请求的应用,如...

    mysql的最大连接数修改方法_默认是100, 最大可以达到16384

    总结一下,修改MySQL的最大连接数涉及调整`max_connections`和`open_files_limit`配置参数,并可能需要在操作系统层面进行额外的设置。这些调整需要谨慎操作,以免影响系统的稳定性和安全性。同时,定期检查和监控...

    Linux下高并发socket最大连接数所受的各种限制

    因此,系统对用户进程可打开文件数量的限制直接影响了最大并发Socket连接数。默认情况下,这个限制通常是1024,可以通过`ulimit -n`命令查看。若要增加这个限制,可以使用`ulimit -n &lt;number&gt;`命令,但需要注意,这...

    获取和修改linux socket最大连接数,linux,系统

    本文将深入探讨如何获取和修改Linux Socket的最大连接数,以及其背后的系统原理。 首先,我们需要了解`/proc/sys/net/core/somaxconn`这个系统文件,它是用来设置监听队列的最大长度,即TCP连接请求的最大等待队列...

    Linux性能调优基本策略.doc

    对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序,可以通过使用 `ulimit -n` 命令来修改每个进程可打开的文件数,例如将每个进程可以打开的文件数目加大到 4096:`ulimit -n 4096`。 此外,还可以...

    linux中高并发socket最大连接数的优化详解

    ### Linux中高并发Socket最大连接数的优化详解 在Linux环境下进行网络编程时,经常会遇到高并发场景下Socket连接数的限制问题。本篇文章将详细阐述如何针对这一问题进行优化,帮助开发者更好地理解和掌握相关技术。...

    增加连接数限制个数

    `ulimit -n`命令可以查看和修改这个限制,增加这个值可以允许更多的并发连接。 2. **Socket缓冲区大小**:每个TCP连接都有发送和接收缓冲区,增大这些缓冲区可以容纳更多数据,从而支持更多连接。 3. **进程/线程...

    TCPIP并发连接数修改

    TCP/IP并发连接数修改是网络优化的一个重要环节,特别是在进行大规模网络扫描或高并发网络应用时,可能会遇到TCP并发连接数限制导致的问题。这通常是因为操作系统为了防止恶意攻击或者资源过度消耗,对单个进程或...

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    本文讨论了 Nginx 访问慢和 accept() failed 错误的解决方案,包括临时修改 ulimit 值、永久修改 ulimit 值、修改 nginx.conf 文件、影响 MySQL 并发连接数等方法。通过这些方法,可以解决 Nginx 连接过多的问题,...

    文件最大数修改

    通过`ulimit -n`命令可以查看当前用户的最大同时打开文件数。例如,默认情况下大多数Linux发行版将此值设置为1024。 ##### 5.2 修改用户级最大文件数限制 可以临时增加此限制,如`ulimit -n 50000`。但这仅对当前...

    配置开发支持高并发TCP连接的Linux应用程序

    修改用户进程可打开文件数限制可以通过 ulimit 命令来实现。ulimit 命令可以查看和设置用户进程可打开文件数限制。例如,使用以下命令可以查看当前用户进程可打开文件数限制: [speng@as4 ~]$ ulimit -n 这将显示...

    Linux内核调优

    在Linux中,可以通过`ulimit -n`命令来查看当前用户的进程可打开文件句柄的最大数量。例如,执行`ulimit -n`后显示的结果为1024,这意味着该用户的每个进程最多可以打开1024个文件。考虑到标准输入、标准输出、标准...

    数据库的连接数和连接池

    "数据库连接数和连接池" 数据库连接数是指系统中可以同时存在的连接数量,而连接池则是为了解决频繁的数据库连接创建和销毁问题的技术。下面我们来详细了解这两个概念。 数据库连接数的限制: 在了解数据库连接数...

    linux中的weblogic性能调优.pdf

    - 使用`ulimit -n`命令可以查看当前用户最大TCP连接数。默认值可能不足以应对高并发场景。通过`ulimit -n &lt;file_num&gt;`可以设置单个进程的最大打开文件数。如果权限不足,需要修改`/etc/security/limits.conf`和`/...

    javasnmp源码-tcp-tuning:LinuxTCP调优

    系统的最大进程数和最大文件打开数限制: vi /etc/security/limits.conf # 添加如下的行 * soft noproc 65535 * hard noproc 65525 * soft nofile 1000000 * hard nofile 1000000 说明:* 代表针对所有用户 noproc ...

    oracle在LINUX环境下的配置

    - 设置Oracle用户的最大进程数和文件句柄数。 - `oracle soft nproc 2047` - `oracle hard nproc 16384` - `oracle soft nofile 1024` - `oracle hard nofile 65536` 3. **修改 `/etc/pam.d/login` 文件**: ...

    Linux下查看进程打开的文件句柄数和如何修改方法

    修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...

    CentOS 7中MySQL连接数被限制为214个的解决方法

    通过运行 `show variables like "max_connections"`,你可以验证当前的最大连接数是否已更改为2000或其他你设定的值。 总之,解决CentOS 7中MySQL连接数限制的问题,关键在于理解这个限制是由系统级别的文件描述符...

Global site tag (gtag.js) - Google Analytics