Linux磁盤空間占用率100%的排查方法
系統(tǒng)硬盤或云盤不夠
這里以默認(rèn)使用的是40G磁盤空間的云服務(wù)器為例子
查看磁盤占用
`df -h`
結(jié)果顯示多條如下數(shù)據(jù),這里最關(guān)鍵的指標(biāo)就是使用百分比,這個(gè)值較高一般需要處理,或者明確知道自己項(xiàng)目或工作目錄是哪個(gè),就只要找對(duì)應(yīng)的位置去處理即可。
可以看到docker容器占用過高,overlay 40G 40 0 100% /var/lib/docker/overlay2/{id}/merged
通過df -h
找文件時(shí),可能有通過-v
進(jìn)行了掛載數(shù)據(jù)目錄的,里面的數(shù)據(jù)可根據(jù)相應(yīng)的掛載目錄
找到對(duì)應(yīng)的容器進(jìn)行清理或設(shè)置;也可能有出現(xiàn)許多容器產(chǎn)生的未通過-v
掛載的目錄/var/lib/docker/overlay2/{id}/merged
容器占用,包括日志占用和數(shù)據(jù)占用
容器是基于鏡像打包好的一個(gè)可運(yùn)行的系統(tǒng)。當(dāng)我們?cè)趧?chuàng)建一個(gè)容器的時(shí)候下面兩個(gè)目錄就會(huì)出現(xiàn)數(shù)據(jù)
容器的日志占用
/var/lib/docker/containers/ID 目錄所有日志都會(huì)以JSON形式保存到本機(jī)的此目錄下。
容器的數(shù)據(jù)占用
/var/lib/docker/overlay2 【文件系統(tǒng)】基于容器文件系統(tǒng)保存的數(shù)據(jù)會(huì)寫到本機(jī)的此目錄下,
linux中的文件占用情況
查找"/"目錄下所有大于100M的所有文件
`find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr # 查找"/"目錄下所有大于100M的所有文件`
/var/lib/docker/containers/{container_id}/
下存在數(shù)據(jù)較大的*-json.log
日志文件,docker容器運(yùn)行的標(biāo)準(zhǔn)輸入日志
。項(xiàng)目中已使用-v
的方式掛載項(xiàng)目輸出日志文件,因此對(duì)容器運(yùn)行日志沒有了需求??梢赃M(jìn)行清理
docker容器日志占用清理
清理docker日志
echo '' > /var/lib/docker/containers/容器id/容器id-json.log
清理完日志后磁盤空間占用36%
在運(yùn)行容器時(shí)進(jìn)行限制
`docker run ...... --log-opt max-size=10m --log-opt max-file=1`
發(fā)現(xiàn)在運(yùn)行容器的時(shí)候可以對(duì)標(biāo)準(zhǔn)輸入日志大小
與數(shù)量
進(jìn)行限制,以減少日志文件對(duì)存儲(chǔ)空間的占用,以下配置分別為日志文件最大容量、最大日志文件數(shù)。
max-size 最大數(shù)值 , max-file 最大日志數(shù),但一兩個(gè)容器還好,但是如果有很多容器需要管理,這樣就很不方便了,最好還是可以統(tǒng)一管理(全局修改)
全局修改
在docker的配置文件中進(jìn)行全局修改:創(chuàng)建或修改文件 /etc/docker/daemon.json,并增加以下配置
{ "log-opts": { "max-size": "10m", "max-file": "1" } }
解決上面提到的問題(overlay2 占用磁盤過大不釋放)
繼續(xù)增加以下配置
{ "log-opts": { "max-size": "10m", "max-file": "1" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=1" ] }
最后重啟docker
systemctl stop docker systemctl start docker
最后
到此這篇關(guān)于Linux磁盤空間占用率100%的排查方法的文章就介紹到這了,更多相關(guān)Linux磁盤排查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Linux中PostgreSQL和PostGIS的安裝和使用
這篇文章主要介紹了詳解Linux中PostgreSQL和PostGIS的安裝和使用,并把需要注意點(diǎn)做了分析和解釋,需要的朋友學(xué)習(xí)下。2018-02-02Linux下Squid配置詳解 Squid代理服務(wù)器配置
本文介紹Linux下非常著名、常用的Squid代理服務(wù)器的使用,并著重講述如何使用其提供的訪問控制策略,來保證代理服務(wù)器的合法使用。2009-10-10Centos系統(tǒng)下“無法打開并寫入文件”問題的解決
這篇文章主要給大家介紹了關(guān)于在Centos系統(tǒng)下報(bào):“無法打開并寫入文件”問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12centos 7中設(shè)置tomcat 7為系統(tǒng)服務(wù)的方法詳解
這篇文章主要給大家介紹了關(guān)于在centos 7中設(shè)置tomcat 7為系統(tǒng)服務(wù)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06Linux學(xué)習(xí)教程之redis哨兵集群詳解
這篇文章主要給大家介紹了關(guān)于Linux學(xué)習(xí)教程之Redis哨兵集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07