測試環境服務器硬盤塞滿問題排查

項目中出現的問題

文章出處java

某天下午測試環境服務器出現tab沒法補全命令,給出的提示大概意思就是說,無可用空間沒法建立臨時文件,不過此次跟上次出現的問題比較像,上次服務器出現的問題,所以樓主判斷多是服務器數據盤被佔滿,果不其然,使用df -h命令看到服務器數據盤出現100%被佔用的狀況。linux

問題排查過程

樓主首先想到的是能夠看到,linux系統中佔用數據盤最大的文件,常狀況下,最有可能找出佔用磁盤空間文件或文件夾的地方,主要是 /tmp or /var or /home or /。 目前沒有單個命令來完成查找的工做,一般可使用一些命令的組合來幫助您找出磁盤上比較佔用空間的文件或者文件夾。主要用到下面的三個命令:nginx

  • du : 計算出單個文件或者文件夾的磁盤空間佔用.
  • sort : 對文件行或者標準輸出行記錄排序後輸出.
  • head : 輸出文件內容的前面部分.

用下面的命令組合就能夠完成上述查找工做:git

du -h / | sort -n -r | head -n 10
複製代碼

上述命令的含義就是查找/目錄下按照大小排序佔用磁盤空間最大的10個文件。github

若是須要輸出可讀性更高的內容,請使用以下命令:bash

du -hsx * | sort -rh | head -10
複製代碼

ok,到此爲止問題華華麗麗的解決了,很開心哦。服務器

分享一個命令的使用

lsof -i

在使用Linux系統的過程當中,有時候會遇到端口被佔用而致使服務沒法啓動的狀況。好比HTTP使用80端口,但當啓動Nginx時,卻發現此端口正在使用。測試

這種狀況大多數是因爲軟件衝突、或者默認端口設置不正確致使的,此時須要查看究竟哪一個進程佔用了端口,來決定進一步的處理方法。spa

通常狀況下查看某一端口的佔用狀況的用法是: lsof -i:端口號 例如查看80端口的使用狀況.net

lsof -i:80
COMMAND  PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    7464   root  272u  IPv6 7111192      0t0  TCP 192.168.201.8:45616->192.168.201.8:http (CLOSE_WAIT)
nginx   7555   root    7u  IPv4 7110265      0t0  TCP *:http (LISTEN)
nginx   7556 nobody    7u  IPv4 7110265      0t0  TCP *:http (LISTEN)
java    7573   root  210u  IPv6 7110330      0t0  TCP 192.168.201.8:45422->192.168.201.8:http (CLOSE_WAIT)
java    7602   root  140u  IPv6 7111090      0t0  TCP 192.168.201.8:45412->192.168.201.8:http (CLOSE_WAIT)
複製代碼

結束該端口的佔用能夠會用kill pid的方法。

相關文章
相關標籤/搜索