1. 问题背景

     今天中午接到客户电话反馈大数据平台运行同步任务很慢,查看任务运行日志提示:日志查询失败。接到报障登录运维巡检平台检查监控是否有平台告警。检查后发现平台无告警信息。登录任务执行节点查看CPU、内存、磁盘空间使用情况,发现CPU负载不高,内存使用率也不高,磁盘使用了60%。


    使用df -i产看了一下挂载分区的索引节点(iNode),发现数据盘的iNode已经耗尽了(IUse=100%),导致系统无法创建新文件,导致任务日志没有创建成功。


  2. 问题原因及分析

    iNode是索引节点,每个存储设备被格式化为文件系统后,会分成两部分:iNode和Block。Block是用于存储数据,而iNode是存储数据信息,这个信息包含(文件大小、属主属组、读写权限等),每一个文件都一个唯一的iNode值,操作系统能根据iNode值快速找到对应的文件。服务器如果有大量的小文件会快速消耗iNode的数量,磁盘空间不一定会占满。当iNode被耗尽后系统将无法创建任何的文件或文件夹。


  3. 解决方案

      命令查找占用文件多的目录

  for i in /*; do echo $i;find $i |wc -l;done

     进入占用文件多的目录,删除不需要的文件

  rm -rf /${dir_name}/*

   4. 拓展

       为避免下次再次出现可写个脚本结合Linux系统的定时任务(cron)定期删除日志文件