Linux Linux伺服器磁碟佔滿問題解決

2022-05-05 05:21:10 字數 832 閱讀 9324

時間  2015-07-03

標籤 伺服器

leader

linux

技術部欄目 linux

原文   

今天下班某電商技術部leader發現個問題,說他們伺服器硬碟滿了。把日誌檔案都刪掉了,可硬碟空間依舊滿。於是df -h檢視了下各個掛載點的狀況(如下圖)。

/dev/sda3占用了100%,那麼我們du -s -h ./*看下目錄的占用情況(如下圖)。

linux磁碟掛載點目錄占用情況(圖)

掛載點下的目錄之和遠小於4.5g,那麼是什麼占用了硬碟呢?

以下為該問題的解答:

在apache/tomcat服務在執行狀態下,清空了執行服務的日誌,從而導致了/dev/sda3 滿了的問題。一般情況下,大多數服務(包括指令碼)在執行時,是不能刪除當前正在寫入的日誌檔案的。

原理分析:

1. 當前access.log日誌正在被apache程序占用。

2. 通過rm命令刪除access.log,實際只刪除了檔名(該日誌檔案應用記數不為0,因此空間不會被釋放)。

3. 通過rm命令刪除了access.log後,apache依然寫日誌到access.log中,當開啟apache程序時,已經通過access.log定位到該檔案的inode了,就是說再寫日誌是不通過access.log,因此即使刪除了access.log,apache依然寫日誌到access.log所在的inode節點,所以導致硬碟空間增加。

4. 因為刪除了access.log,所以我們就找不到該檔案了,du也查不到,就會出現硬碟滿了但看不到究竟是哪些檔案占用的。

(寫的不甚詳細,不明白的大家再google下。)

解決方法:

伺服器磁碟滿了

步驟一 遇到磁碟空間不足的報錯時候,首先使用df h檢視磁碟空間使用情況,磁碟空間達到100 步驟二 比如 data已經達到100 進入目錄 data,查詢磁碟空間中的大檔案,使用命令 du sh 查詢占用空間大的目錄,可以看到空間占用比較大的檔案,通過逐層定位,最後會找到具體的檔案 步驟三 除了上...

Linux伺服器磁碟佔滿

今天下班某電商技術部leader發現個問題,說他們伺服器硬碟滿了。把日誌檔案都刪掉了,可硬碟空間依舊滿。於是df h檢視了下各個掛載點的狀況 如下圖 dev sda3占用了100 那麼我們du s h 看下目錄的占用情況 如下圖 linux磁碟掛載點目錄占用情況 圖 掛載點下的目錄之和遠小於4.5g...

伺服器磁碟效能分析

伺服器硬碟,顧名思義,就是伺服器上使用的硬碟 hard disk 如果說伺服器是網路資料的核心,那麼伺服器硬碟就是這個核心的資料倉儲,所有的軟體和使用者資料都儲存在這裡。對使用者來說,儲存在伺服器上的硬碟資料是最寶貴的,因此硬碟的可靠性是非常重要的。為了使硬碟能夠適應大資料量 超長工作時間的工作環境...