一次服務器磁盤空間不足導致的一系列問題


  繼昨天服務器上應用 CPU占用過高 后面該應用宕掉了以后       java 一次CPU占用過高問題的排查及解決

 

今天又出現了更嚴重的問題     昨天解決完問題  今天早些時候 出現了系統無法登錄  查詢日志定位應該數數據庫的問題

后面發現是磁盤滿了    其實還是昨天的出現問題的導致,  死循環刷了特別多的日志,,導致磁盤空間不足  導致數據庫讀寫出問題了,繼而導致應用不可用

使用cd /  du -sh *  列出各文件夾的占用大小

 

可以看到主要是usr/   進入 usr  繼續看磁盤占用

/usr/local文件夾依舊還是最大的

繼續進入/usr/local

基本可以確定是日志文件太多了

清理掉一些日志  mysql就正常了,  應用也正常了,   故而整理了一下服務器的磁盤, 避免下次再次發生磁盤不足的情況

索性這兩次出現的問題都是一些內部的應用,  出現了問題影響范圍有限

 

 

-----------------------------------------------------------------------------------華麗的分割線-------------------------------------------------------------------------------------------

在整理linux磁盤的時候  查了一些資料 故而整理一下 ,留給以后需要的時候的使用

df  -h  查看磁盤占用情況

du -sh *  進入某個人文件夾后  使用該命令可以看該文件夾下文件的占用情況

 

但是發現使用rm -rf  文件名   刪除文件后    磁盤空間並沒有變化    

查詢資料發現是    通過rm或者文件管理器刪除文件將會從文件系統的目錄結構上解除鏈接(unlink).然而如果文件是被打開的(有一個進程正在使用),那么進程將仍然可以讀取該文件,磁盤空間也一直被占用。

簡單的理解  就是rm  刪除的是引用  如果引用對應的文件正在被使用,這個文件是不會真正的被刪除掉的

lsof | grep deleted

 

 

 

-----------------------------------------------------------------------------------華麗的分割線-------------------------------------------------------------------------------------------

 

順便學習一下 lsof  (list opened files)

lsof全名list opened files,也就是列舉系統中已經被打開的文件。我們都知道,linux環境中,任何事物都是文件,
設備是文件,目錄是文件,甚至sockets也是文件。所以,用好lsof命令,對日常的linux管理非常有幫助。

 lsof -i : 端口號     可以用來查詢端口時候被占用

lsof -i :8082

lsof  文件  顯示開啟文件/usr/local/tomcat_backend/logs/catalina.out的進程

lsof  /usr/local/tomcat_backend/logs/catalina.out

 lsof - p 進程PID 

lsof - p 1498

 看進程號為1498的進程打開了哪些文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM