一次詭異磁盤空間占用問題排查

      網友投稿 736 2022-05-28

      大半夜接到線上一服務器磁盤占用率超過90%的短信,需要立即處理。一般這種情況都是線上異常,當天日志打太多,無法自動刪掉的。上來第一反應就是查我們規范java應用日志目錄,居然沒有文件,再查,居然連java進程都沒有,原來不是java應用,不過沒關系,干一年運維也不是白干的,還是有其他方法可以查的,在此記錄下整個排查過程。

      用df -h看下是哪個分區比較大,我司應用包都是布在/home目錄下的。

      $ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 18G 5.0G 12G 30% / /dev/xvda1 247M 25M 210M 11% /boot tmpfs 7.4G 248K 7.4G 1% /dev/shm /dev/xvdb1 50G 45G 5.3G 90% /home

      1

      2

      3

      4

      5

      6

      然后cd到home目錄下,來看看哪個文檔比較大,我最常用的命令就是du -h --max-depth=1,通常可以直接找到哪個目錄占空間比較大,不過今天詭異了。。

      $sudo du -h --max-depth=1 40K ./***.** #這是別人的home路徑,一堆賬號,略去 . . . 40K ./***.** 1.9G . #所有文件占用總空間

      1

      2

      3

      4

      5

      6

      7

      一次詭異的磁盤空間占用問題排查

      這就很詭異了,上面提示我/home目錄已使用45G,實際上只用了1.9G,無果。不查大目錄了,我找找到有什么大的文件,查文件,最好用的就是find命令了,因為平時不怎么用,對其參數還是不大了解,所以網上搜了一把,找到下面這條命令(果然學習還是得靠問題驅動)。

      find . -type f -size +800M 查找當前目錄下大于800m的文件,依舊無果,改成100m,無果。 然后不按大小,我只查有沒有*.log.*的文件(有時候也是小文件太多,導致磁盤滿),依舊無果,額。。。已有知識有點不夠用了。

      看了下監控系統,發現磁盤占用空間一直在增長,肯定一直是有什么進程在寫文件,那我就看看服務器上的進程吧。 常用命令 ps、pstree 這里我先用ps看了下,出來的內容太多,不方便看,遂改用pstree,得到如下結果。

      $ sudo pstree init─┬─DragoonAgent─┬─DragoonAgent │ ├─2*[DragoonAgent───10*[{DragoonAgent}]] │ ├─DragoonAgent───7*[{DragoonAgent}] │ └─DragoonAgent───2*[{DragoonAgent}] ├─aegisinc_cli───11*[{aegisinc_cli}] ├─agetty ├─atd ├─crond ├─gshelld───3*[{gshelld}] ├─irqbalance ├─lldpd───lldpd ├─6*[mingetty] ├─nginx-proxy───4*[nginx-proxy] ├─node─┬─4*[node─┬─phantomjs───3*[{phantomjs}]] │ │ └─5*[{node}]] │ ├─node───5*[{node}] │ └─5*[{node}] ├─ntpd ├─portmap ├─sshd───sshd───sshd───bash───pstree ├─staragentd─┬─staragent-core───22*[{staragent-core}] │ └─staragent-ppf─┬─logagent───12*[{logagent}] │ └─11*[{staragent-ppf}] ├─syslog-ng───syslog-ng └─udevd

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      排除系統進程,看到有nginx-proxy(我司常用的包),還有一個node,我猜應該是個nodejs應用(表示完全不了解這鬼東西),pstree -p,可以顯示pid的,有了pid,我們就可以查這些進程在寫入哪些文件了。

      這里我查到pid是 10163,讓我來看下這鬼進程在寫哪些文件,使用如下命令。

      $ ls -al /proc/10163/fd total 0 dr-x------ 2 admin admin 0 Jul 8 19:56 . dr-xr-xr-x 7 admin admin 0 Jan 20 2015 .. lr-x------ 1 admin admin 64 Sep 12 16:16 0 -> /dev/null l-wx------ 1 admin admin 64 Sep 12 16:16 1 -> /home/admin/snapshot-kgb/logs/nodejs_stdout.log (deleted) lrwx------ 1 admin admin 64 Sep 10 01:39 10 -> socket:[178406733] ###內容有點多,刪去一部分。。。。 lrwx------ 1 admin admin 64 Sep 10 01:39 15 -> socket:[150611725] l-wx------ 1 admin admin 64 Sep 9 02:33 2 -> /home/admin/snapshot-kgb/logs/nodejs_stdout.log (deleted) lrwx------ 1 admin admin 64 Sep 10 01:39 8 -> anon_inode:[eventfd] lr-x------ 1 admin admin 64 Sep 10 01:39 9 -> /

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      這里有倆文件,末尾標示(deleted),然后想到看下別人的操作記錄,發現今天同事有上來刪過這倆文件,但他沒有重啟進程。 linux刪除正在被寫入的文件之后仍是會占用磁盤空間的,這也解釋了開始為何我用du、df、find為什么查不到大文件。

      接下來就是如何處理磁盤空間仍被占用的問題了,只需要重啟下node進程就好了,咋重啟??? 我不會啊!!尷尬。。。嘗試清空下該文件 echo '' > /home/admin/snapshot-kgb/logs/nodejs_stdout.log cat /dev/null > /home/admin/snapshot-kgb/logs/nodejs_stdout.log 無果。。。。

      峰回路轉,突然在服務器上發現了重啟進程的腳本,重啟后再用df命令查看磁盤使用率,降到10%了。

      總結一下,如何避免以后出現類似的情況。

      1.避免直接刪除linux上正在寫入的文件,正確做法應該是,重寫覆蓋該文件 echo ' ' > filename。

      2.排查耗時較長,很多命令都是現學現賣。

      3.近2k服務器,雖然已有磁盤自動清理機制,但未徹底解決問題,可能還得需要一個完美的工具。

      任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Windows系統 cleanmgr命令詳解,Windows命令行清理磁盤
      下一篇:張小白教你玩轉Windows的WSL2
      相關文章
      亚洲中文字幕无码一区| 亚洲JLZZJLZZ少妇| 亚洲小说图片视频| 亚洲成a人在线看天堂无码| 亚洲高清在线视频| 亚洲第一成人影院| 亚洲AV无码之国产精品| 亚洲国产美女精品久久久| 亚洲一级二级三级不卡| 怡红院亚洲怡红院首页| 亚洲精品无码久久久久久| 伊人久久亚洲综合影院首页| 亚洲黄色在线视频| 亚洲国产精品一区二区成人片国内| 亚洲精品无码专区在线| 亚洲日韩精品无码专区加勒比☆| 久久久久亚洲精品日久生情| 亚洲日本一区二区| 亚洲网站视频在线观看| 亚洲AV无码日韩AV无码导航| 精品国产亚洲男女在线线电影| 亚洲欧美精品午睡沙发| 亚洲av无码兔费综合| 色天使色婷婷在线影院亚洲| 亚洲综合丁香婷婷六月香| 亚洲国产精品婷婷久久| 亚洲情a成黄在线观看动漫尤物| 亚洲国产精品久久久久| 亚洲视频免费播放| 亚洲中文无码线在线观看| 亚洲天堂久久精品| 亚洲视频在线观看地址| 亚洲一级毛片免费看| 亚洲人成无码网站在线观看| 亚洲av日韩av永久无码电影| 亚洲成人一区二区| 亚洲日本va在线视频观看| 亚洲丁香色婷婷综合欲色啪| 亚洲美女免费视频| 伊人久久亚洲综合影院首页| 国产精品观看在线亚洲人成网|