zoukankan      html  css  js  c++  java
  • 一次遇到too many open files的解决详情

    参考大神博客:Too many open files的四种解决办法

    遇到报错信息:too many open files
    
    统计各进程打开句柄数:lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
    统计各用户打开句柄数:lsof -n|awk '{print $3}'|sort|uniq -c|sort -nr
    统计各命令打开句柄数:lsof -n|awk '{print $1}'|sort|uniq -c|sort -nr
    #第一列是打开的句柄数,第二列是进程ID。
    
    ps -e | grep docker
    18239 ?        19-04:29:02 dockerd
    
    lsof -p 18239|wc -l	#查看打开的文件数
    65570
    
    # 文件句柄数设置的是65536现在已经65570了
    # 由于是k8s机器,大量占用的只有docker了
    
    cat /proc/sys/fs/file-max      #文件系统最大可打开文件数如果设置值太小,修改文件/etc/sysctl.conf的变量到合适的值fs.file-max = 8192
    
    docker system df      #查看空间使用情况
    docker system df -v   #命令可以进一步查看空间占用细节
    
    docker system prune   #可对空间进行自动清理。也可以清理未释放的文件数
          #该命令所清理的对象如下:
                #已停止的容器
                #未被任何容器使用的卷
                #未被任何容器所关联的网络
                #所有悬空的镜像
    docker system prune      #后面可以加额外的参数,如:
    docker system prune -a : #一并清除所有未被使用的镜像和悬空镜像。
    docker system prune -f : #用以强制删除,不提示信息。
    
    docker image prune #删除悬空的镜像。
    docker container prune #删除无用的容器。
          #--默认情况下docker container prune 命令会清理掉所有处于stopped状态的容器
          #--如果不想那么残忍统统都删掉,也可以使用--filter标志来筛选出不希望被清理掉的容器。例子:清除掉所有停掉的容器,但24内创建的除外:
          #-- docker container prune --filter "until=24h"  
    docker volume prune #删除无用的卷。
    docker network prune #删除无用的网络
    
    #对于悬空镜像和未使用镜像可以使用手动进行个别删除:
    #1、删除所有悬空镜像,不删除未使用镜像:
    docker rmi $(docker images -f "dangling=true" -q)
    #2、删除所有未使用镜像和悬空镜像
    docker rmi $(docker images -q)
    #3、清理卷
    #如果卷占用空间过高,可以清除一些不使用的卷,包括一些未被任何容器调用的卷(-v 详细信息中若显示 LINKS = 0,则是未被调用):
    #删除所有未被容器引用的卷:
    docker volume rm $(docker volume ls -qf dangling=true)
    #4、容器清理
    #如果发现是容器占用过高的空间,可以手动删除一些:
    #删除所有已退出的容器:
    docker rm -v $(docker ps -aq -f status=exited)
    #删除所有状态为dead的容器
    docker rm -v $(docker ps -aq -f status=dead)
    
    
    ####然后就重启docker 观察情况了
    
  • 相关阅读:
    C#值类型与引用类型
    Eclipse中JSP生成的类文件存放在哪
    java发起HTTP请求的共用类
    .net汉字转字母
    常用 C#操作字符串方法
    MYSQL整理的语法
    CSS基础篇
    JavaScript基础篇
    jquery操作select(增加,删除,清空)
    Aspose.Words 的使用 Aspose.Total_for_.NET
  • 原文地址:https://www.cnblogs.com/fan-gx/p/12804835.html
Copyright © 2011-2022 走看看