范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

故障分析一条du命令引发的内存不足报警

  作者:任坤
  现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。
  本文来源:原创投稿
  *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1、背景
  上班时间收到一条磁盘空间报警
  登录该机器查看,根分区只有不到16G,此刻已经使用超过了80%。
  查看根分区下最大的10个文件并按照size降序排列 du ‐Sm / ‐‐exclude="/data" | sort ‐k1nr | head ‐10
  这条命令在其他环境执行几秒钟就返回了,在这个机器上执行了将近1分钟,最后定位到是几个日志文件,直接删除即可。
  刚准备退出登录,又收到一条内存报警,还是这台机器。
  2、诊断
  查看内存使用情况,确实已经被耗尽
  top查看最耗内存的几个进程
  消耗内存每多的mysqld只占用了43G,就算加上截图中的其他几个进程,顶多占用44G。 为避免漏算,统计一下所有进程占用的物理内存总和: [root@centos6564‐220 ~]# more RSS.sh #/bin/bash for PROC in `ls /proc/|grep "^[0‐9]"` do if [ ‐f /proc/$PROC/statm ]; then TEP=`cat /proc/$PROC/statm | awk "{print ($2)}"` RSS=`expr $RSS + $TEP` fi done RSS=`expr $RSS * 4 / 1024 / 1024` echo $RSS"GB"  [root@centos6564‐220 ~]# sh RSS.sh 44GB
  注:该脚本来自于褚霸多年前的一篇文章 http://blog.yufeng.info/archives/2456
  问题来了,剩余的10多G内存被谁占用了? top 和 ps 都给不出答案,只能查看/proc/meminfo文件
  注意红框中的信息,slab 消耗了太多的缓存,且都是可回收的,看大小正好有16G左右。
  联想到刚刚执行的巨慢的du -Sm命令,答案似乎很明显了。
  执行slabtop
  dentry 和 inode 占用了很多内存,但是输出结果不够直观。
  查看超过100M的 slab 缓存组件 [root@centos6564‐220 ~]# cat /proc/slabinfo |awk "{if($3*$4/1024/1024 > 1 00){print $1,$3*$4/1024/1024 "MB"} }" xfs_inode 113.586MB proc_inode_cache 11989.1MB dentry 3526.19MB
  inode 占用了将近12G,dentry 占用了3.5G,一切都对上了。
  既然是 slab 缓存导致的内存不足,可以直接用 echo 2 > /proc/sys/vm/drop_caches 命令回收。
  至此,内存不足的问题已解决。 3、寻源
  新的疑问产生,到底是哪个目录消耗了海量的 inode/dentry?
  执行如下命令,统计根目录下每个目录拥有的文件和子目录总数。 for i in `ls / `; do  count=`ls ‐lR /$i | wc ‐l`  echo "$i has $count files and dirs" done ... proc has 32940780 files and dirs root has 462 files and dirs sbin has 287 files and dirs tmp has 2 files and dirs ....
  /proc是元凶,继续探查/proc下的子目录,这次统计细化分为文件和子目录 for i in `ls /proc `; do  files=`ls ‐lR /proc/$i | grep "^‐" | wc ‐l`  dirs=`ls ‐lR /proc/$i | grep "^d" | wc ‐l`  echo "$i has $files files and $dirs dirs" >> /tmp/count_tmps done 7 #15049进程占用了1600w个文件 [root@centos6564‐220 tmp]# more count_tmps | sort ‐k3nr | head ‐5 15049 has 16381888 files and 964 dirs  17211 has 7653 files and 349 dirs  6053 has 7511 files and 384 dirs  18720 has 2289 files and 269 dirs  sys has 1166 files and 119 dirs   [root@centos6564‐220 tmp]# ps ‐ef | grep 15049  mysql 15049 13839 41 Jan07 ? 85‐09:04:44 /usr/sbin/mysqld ‐‐basedir=/usr ‐‐datadir=/data/var ‐‐plugin‐dir=/usr/lib64/mysql/plugin ‐‐user=mysql ‐‐ log‐error=/data/var/err.log ‐‐pid‐file=/data/var/mysql.pid ‐‐socket=/data/v ar/mysql.sock ‐‐port=3306  root 24912 25232 0 01:10 pts/3 00:00:00 grep 15049
  多尴尬,查半天居然还是 mysql 的问题。
  统计/proc/15049下的子目录信息 dest=/proc/15049 for i in `ls $dest `; do  files=`ls ‐lR $dest/$i | grep "^‐" | wc ‐l`  dirs=`ls ‐lR $dest/$i | grep "^d" | wc ‐l`  echo "$i has $files files and $dirs dirs" >> /tmp/15049 done  [root@centos6564‐220 task]# cat /tmp/15049 | sort ‐k3nr | head ‐5 task has 20428788 files and 955 dirs  fdinfo has 106921 files and 0 dirs  net has 60 files and 3 dirs  attr has 6 files and 0 dirs  autogroup has 1 files and 0 dirs
  /proc/15432/task目录,记录的是 mysqld 衍生的每个子线程的信息。
  查看 mysqld 当前的子线程数量 [root@centos6564‐220 task]# cat /proc/15049/status | grep ‐i threads Threads: 191
  继续查看每个子线程具体信息 dest=/proc/15049/task  for i in `ls $dest `; do  files=`ls ‐lR $dest/$i | grep "^‐" | wc ‐l`  dirs=`ls ‐lR $dest/$i | grep "^d" | wc ‐l`  echo "$i has $files files and $dirs dirs" >> /tmp/15049_task done  [root@centos6564‐220 tmp]# more 15049_task | sort ‐k3nr | head ‐5 15049 has 106957 files and 4 dirs  15058 has 106957 files and 4 dirs  15117 has 106957 files and 4 dirs  15118 has 106957 files and 4 dirs  15119 has 106957 files and 4 dirs
  每个子线程打开的文件数量是一样的,进入任意1个子线程的 fd 目录, [root@centos6564‐220 fd]# pwd /proc/15432/task/15120/fd [root@centos6564‐220 fd]# ls | wc ‐l 85286  #每一个fd都是1个mysql文件,看命名格式是分区表 [root@centos6564‐220 fd]# ll 39326 lrwx‐‐‐‐‐‐ 1 root root 64 Jul 31 01:34 39326 ‐> /data/tokudb/_*_sql_204d_ 542_P_p20161105_188_status_3f14ef598_1_1d.tokudb  4、结论
  登录数据库查看 information_schema.partitions ,发现了100多个分区表,每个表1000个分区起步。
  这套实例是其他部门半路转交给我们的,该组同学使用 mysql 最大的特点就是喜欢创建分区表。
  另外,诊断全程 free -g 显示空闲物理内存为0,但是 mysqld 并没有因此 OOM ,这是因为被额外消耗的那16G内存全属于可回收类型,可以被其他内存请求复用

2022年安卓手机最强的CPU是哪一款?感谢您的阅读!从目前来看,安卓手机最强的CPU有两款新一代骁龙8平台,来自于高通。1。三星4nm工艺2。它的超大核是1CortexX2,3。0GHz它的中核有3颗CortexA71用了2年的iPhone11终于退休,换成小米12后,分享真实感受文球子审核子扬校对知秋赶在2021年结束之前,小米正式发布了第三代数字旗舰小米12系列,在发布会上,雷军表示,小米12系列将全面对标iPhone。对于小米12,笔者也是非常感兴趣,无需耗材,错题整理试卷还原!喵喵机家用学习打印机F1评测咳咳各位家长们是否还在为老师给孩子布置的作业试卷的打印而感到烦恼?不知何时开始,给娃儿打印各种学习资料似乎已成了家常便饭的事儿,每次老师通过联系群一丢就完事了,可后面的家长就得手忙小米12Pro和小米11u相比较,该如何选?按照目前的市场行情来看,这两款手机的价格是差不多的。那么问题来了,如何从这两款手机中选择一款手机进行购买呢?小芳我根据买新不买旧的原则,是更加推荐大家购买小米12Pro这款手机的。黑莓将于1月4日消亡这次是真的传统黑莓设备将在2022年失去文本通话和数据功能QWERTY和古怪Blackberry后来的Android版本保留了著名的键盘。亲爱的朋友们,我们今天齐聚一堂,悼念曾经深受喜爱的移微信新功能上线!网友真香除了社交使用,微信也一直是不少人办公常用的软件。相信不少人都遇过这样的难题传个大文件,但是登录别人的电脑,有些隐私的聊天记录也都一并同步了,多少有点尴尬最新消息!微信又有新功能无需Intel的厉害不在于其自身有多么厉害,而是在于x86软件生态的厉害不能让欧美垄断技术制高点,发展的征程。就像不能让大企业垄断一样。不然只能仰人鼻息。国内市场帮助西方发展完善了技术体系,现在它们要来恶心我们,对它们最好的回击当然是替代不求最快,但求5G量变催生质变的技术创新5G是继4G之后速度更快性能更好的新一代移动通信技术。作为新型基础设施的重要组成部分,5G不仅是十三五期间信息通信业发展的重要成果,也是十四五时期承担社会经济发展重任的必备要素。随为什么你的创业公司应该运行在Kubernetes上从2019年初开始,就有不少创业公司陆陆续续向我咨询Kubernetes等云原生技术。我总是会问这些创业公司的部署流程是怎样的,因为这能让我大概了解到一个公司的技术复杂度处在哪个阶1月2日元旦假期上市公司发布最新事项公告精选(一)1信立泰(002294。SZ)公司不存在应披露未披露的诉讼仲裁事项。2神州泰岳(300002。SZ)公司为中国移动提供超级SIM卡业务(包括SIM盾SIM认证5G快签SIM一卡通S央行第三方互联网平台经营者未经批准不得介入或变相介入金融产品的销售业务环节12月31日,为规范金融产品网络营销,保障金融消费者合法权益,人民银行会同相关部门起草了金融产品网络营销管理办法(征求意见稿)(以下简称办法),其中,对金融产品营销合作行为进行了规
中国知网知识的传播者变为垄断者?文大象知道编辑大象知道图互联网今天,又有一条新闻上了热搜,中科院将从20号起停用中国知网。根据网传消息,中国知网的续订费用近千万,导致很多高校不堪重负。对此,中科院图书馆相关负责人饿了么修订非餐商户入驻及经营规则鞭牛士4月18日消息,日前,饿了么发布通知,拟对非餐商户的相关规则进行修订,将于2022年4月23日生效。本次调整范围为修订电商类商户的入驻资质要求,电商类型商户仅开放平台主动发起财报点评比特数字2021财年转亏为盈,净利润490万美元4月18日,资本邦了解到,比特数字(BTBT。US)发布2021财年财报。2021财年,比特数字转亏为盈,净利润为490万美元,上一年同期为净亏损190万美元比特币挖矿营收为961阿里副总裁双面人中文平台道歉,海外英文平台阴阳怪气读书时,与一位在外留学多年的老哥私交甚好。此人见识颇多,常语出惊人。再一次争论留学生是否应该归国的问题时,他的一段话令我至今记忆犹新。他说如果老娘有缺点,正常人只会私下吐槽或当面和Linux权限管理1。修改文件访问权限Linux文件类型普通文件d目录文件b块特殊文件c字符特殊文件l符号链接,类似于windows里的快捷方式f命令管道s套接字文件字符权限的表示方法r代表可读w代小米MIX4真的卖不动?12GB512GB跌至新低,终于等到了想要有优质的用机体验,自然需要选择高端机,因为高端机的颜值配置更加出色,但这类手机的售价普遍偏高。虽然选择高端机的用户预算比较多,但是谁也不想吃亏。高端机最大的特点就是售价高,难道NFT投资需谨慎来源中工网工人日报经济观察原标题NFT投资需谨慎工人日报中工网记者杨召奎近日,中国互联网金融协会中国银行业协会中国证券业协会联合发布关于防范NFT相关金融风险的倡议(以下简称倡议)百度副总裁吴甜文心大模型已应用于百度搜索等产品,开发者超6万人记者崔鹏近日,百度集团副总裁吴甜与界面新闻等多家媒体分享了百度文心大模型的最新进展。吴甜表示,2022年是文心大模型产业落地关键年,目前文心大模型已大规模应用于百度内部的各类产品,阿联酋力促数字经济发展近日,阿联酋内阁批准一项包含30多项举措和计划的数字经济战略,并成立数字经济委员会,负责协调和帮助相关部门落实战略,以促进数字经济发展。我们的目标是在未来10年内,将数字经济对国内新世界驾控旗舰智己L7正式上市,官宣售价36。88万元40。88万元4月17日,智己汽车公布新世界驾控旗舰智己L7以连续漂移43。646公里的成绩,成功摘冠电动汽车漂移距离最长吉尼斯世界纪录TM荣誉,为快速变革的电动化技术彻底颠覆传统豪华车游戏规则英伟达威胁中国自动驾驶?专家国内真正愿意行动的没几个中国新能源汽车到处开花,个个都喊着自己有自动驾驶技术,但真正愿意行动的企业却没有几个。这句话出现在中国2022年电动汽车百人论坛大会上,而作为此次的演讲人专家和前工信部部长,谈及中