zoukankan      html  css  js  c++  java
  • Linux 进程打开最大文件连接数Too many open files

    首先出现这个提示的原因:应用程序打开的文件数量超过了系统设定值。

    如何查看当前系统每个用户最大允许打开文件数量:

    [root@registry ~]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 3820
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 3820
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    或者

    [root@registry ~]# ulimit -n 
    1024  

    其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024

    #查看一下当前已有的连接数,以此来判断open files 为1024 是否足够

    [root@registry ~]# lsof -n  |awk '{print$2}'|sort |uniq -c |sort -nr |more
        590 5458
        445 1065
        306 638
        267 770
        190 5682
        189 5457
        158 704
        130 1194
        117 681
         81 1263
         68 5419
         66 640
         62 1
         60 5677
         57 678
         55 1067
         51 9036
         51 1196
         48 5698
         44 677
         44 470
         38 494
         32 637
         29 4430
         20 4614
         17 9250
         14 4566
         12 9256
         12 9251
         11 9254
         11 9252
         10 9255
         10 693
          9 9253
          3 92
          3 9037
          3 9033
          3 9
          3 8964
          3 8
          3 726
    

    其中第一列是打开的文件句柄数量,第二列是进程id号

    通过句柄数量最多的进程,查看是哪个应用程序打开了最多的文件句柄,通过命令:

    [root@registry ~]# ps -aef |grep PID
    

    设置open files 数值的方法

    1.临时设置方法

    [root@registry ~]# ulimit -n 4096
    [root@registry ~]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 3820
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 4096
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 3820
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    这样就可以把当前用户的最大允许打开文件数量设置为4096,但这种设置方法在重启后会还原为默认值。

    2.永久设置方法

    [root@registry ~]# vim /etc/security/limits.conf
    # End of file
    root soft nofile 65535
    root hard nofile 65535
    * soft nofile 65535
    * hard nofile 65535
    

    在文件末尾添加上述四行,其中后面两行的 * 表示所有的用户,也可以根据需要设置某一个用户,比如www

    # End of file
    root soft nofile 65535
    root hard nofile 65535
    www  soft nofile 65535
    www  hard nofile 65535
    

    注销账户,重新登录即可生效。 

    如果想查看某个进程最大允许打开的文件数量,可通过如下命令查看:

    [root@registry ~]# top 
    top - 15:39:21 up 101 days,  6:26,  1 user,  load average: 0.33, 0.57, 0.52
    Tasks:  70 total,   1 running,  69 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  6.7 us,  0.0 sy,  0.0 ni, 93.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3881824 total,   111956 free,  3505012 used,   264856 buff/cache
    KiB Swap:  2047996 total,  1001156 free,  1046840 used.   123968 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                 
    12872 www       20   0 2738092 743948   2292 S  6.7 19.2 652:05.43 java                                                                                                                    
        1 root      20   0   43380   2244   1352 S  0.0  0.1   4:11.26 systemd                                                                                                                 
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.31 kthreadd                                                                                                                
        3 root      20   0       0      0      0 S  0.0  0.0  28:18.97 ksoftirqd/0                                                                                                             
        5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                            
        7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                                                             
        8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                                                  
        9 root      20   0       0      0      0 S  0.0  0.0  33:52.08 rcu_sched                                                                                                               
       10 root      rt   0       0      0      0 S  0.0  0.0   0:39.61 watchdog/0                                                                                                              
       12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                                                               
       13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                                                                   
       14 root      20   0       0      0      0 S  0.0  0.0   0:07.72 khungtaskd                                                                                                              
       15 root       0 -20       0      0      0 S  0.0  0.0   0:00.18 writeback                                                                                                               
       16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                                                                             
       17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                                                  
       18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                                                                                 
       19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                                                                                      
       25 root      20   0       0      0      0 S  0.0  0.0  12:21.57 kswapd0                                                                                                                 
       26 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd                                                                                                                    
       27 root      39  19       0      0      0 S  0.0  0.0   0:17.32 khugepaged                                                                                                              
       28 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                                                                                  
       36 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld                                                                                                                
       38 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kmpath_rdacd                                                                                                            
       39 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kpsmoused                                                                                                               
       40 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ipv6_addrconf                                                                                                           
       59 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 deferwq                                                                                                                 
      101 root      20   0       0      0      0 S  0.0  0.0   0:03.48 kauditd                                                                                                                 
      225 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ata_sff                                                                                                                 
      233 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_0                                                                                                               
      234 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_0                                                                                                              
      235 root      20   0       0      0      0 S  0.0  0.0   0:00.00 scsi_eh_1                                                                                                               
      236 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 scsi_tmf_1                                                                                                              
      240 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ttm_swap                                                                                                                
      252 root       0 -20       0      0      0 S  0.0  0.0   1:07.64 kworker/0:1H                                                                                                            
      257 root      20   0       0      0      0 S  0.0  0.0   3:12.26 jbd2/vda1-8                                                                                                             
      258 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 ext4-rsv-conver                                                                                                         
      325 root      20   0  119080   5460   5316 S  0.0  0.1   5:27.58 systemd-journal                                                                                                         
      354 root      20   0   44032      8      4 S  0.0  0.0   0:00.08 systemd-udevd                                                                                                           
    [root@registry ~]# cat /proc/12872/limits 
    Limit                     Soft Limit           Hard Limit           Units     
    Max cpu time              unlimited            unlimited            seconds   
    Max file size             unlimited            unlimited            bytes     
    Max data size             unlimited            unlimited            bytes     
    Max stack size            8388608              unlimited            bytes     
    Max core file size        0                    unlimited            bytes     
    Max resident set          unlimited            unlimited            bytes     
    Max processes             65535                65535                processes 
    Max open files            65535                65535                files     
    Max locked memory         65536                65536                bytes     
    Max address space         unlimited            unlimited            bytes     
    Max file locks            unlimited            unlimited            locks     
    Max pending signals       15089                15089                signals   
    Max msgqueue size         819200               819200               bytes     
    Max nice priority         0                    0                    
    Max realtime priority     0                    0                    
    Max realtime timeout      unlimited            unlimited            us  
  • 相关阅读:
    数数小木块
    猴子吃桃问题
    整除个数
    大小写互换
    车牌号
    比较字母大小
    队花的烦恼一
    字母小游戏
    字符串逆序输出
    茵茵的第一课
  • 原文地址:https://www.cnblogs.com/caoshousong/p/10774486.html
Copyright © 2011-2022 走看看