1. 程式人生 > >(轉)磁碟空間滿故障排除

(轉)磁碟空間滿故障排除

磁碟空間滿一般情況下使用du可以快速定位到那個目錄佔用了大量的磁碟空間。
這裡主要講兩個使用du無法檢視的情況。

# 現象/mnt分割槽磁碟使用率達到100%
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  1.5G   90G   2% /
/dev/sda1             190M   12M  169M   7% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda3              97G  6.3G   85G   7% /usr
/dev/sda6             191G  408M  181G   1% /var
tmpfs                 300M  300M     0 100% /mnt
/dev/loop0            190M  106M   74M  60% /mnt/foo
# 進入/mnt目錄使用du檢視/mnt下的磁碟使用率
# cd /mnt
# du -sh *
101M    bar
101M    foo

# troubleshooting
# 解決思路
# 有兩種情況會干擾du檢視磁碟空間使用率
# 1、刪除的檔案使用du無法檢視
# 2、磁碟分割槽的某一個目錄掛載了另外一個分割槽時,du檢視到的磁碟空間為掛載分割槽後的目錄空間。
# 在瞭解上面兩種情況後,解決這個問題會比較簡單。
# 在生產環境中某一程式的日誌檔案被刪除這一情況發生的機率會大些。

# 故障排除
# 1、查詢被刪除檔案
# 被刪除檔案,在寫程式未退出的情況下,被刪除檔案同樣會佔用磁碟空間。

# lsof -n | head -1
COMMAND     PID     USER   FD      TYPE     DEVICE     SIZE       NODE NAME
# lsof -n /mnt | grep deleted
foo.sh  32593 root    1w   REG   0,18 104538112 981982 /mnt/test.out (deleted)
foo.sh  32593 root    2w   REG   0,18 104538112 981982 /mnt/test.out (deleted)

# 殺掉寫檔案的程式,磁碟空間會自然釋放
# kill 32593
# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 300M  201M  100M  67% /mnt

# 2、檢視分割槽掛載情況
# 因為分割槽的目錄下掛載有其它分割槽,被掛載分割槽的目錄本身容量無法被檢視,所以umount掉掛載分割槽的目錄後將可正常檢視此目錄下檔案所佔用的容量。
# cd /mnt
# du -sh *
101M    bar
101M    foo #此容量為目錄掛載分割槽後的新分割槽容量
# umount /mnt/foo
# du -sh *
21M     bar
201M    foo #此容量為目錄所佔用磁碟滿分割槽的容量

---------------------------------------------------------------------------

測試環境搭建過程

# 掛載300M的記憶體tmpfs到/mnt目錄
# mount -t tmpfs -o size=300m tmpfs /mnt
# cd /mnt && mkdir foo bar
# 先生成兩個檔案到foo bar下,佔用一定的磁碟空間
# dd if=/dev/zero of=foo/file.out bs=1M count=100
# dd if=/dev/zero of=bar/file.out bs=1M count=100  
# 檢視磁碟當時的使用情況
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  1.5G   90G   2% /
/dev/sda1             190M   12M  169M   7% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda3              97G  6.3G   85G   7% /usr
/dev/sda6             191G  408M  181G   1% /var
tmpfs                 300M  201M  100M  67% /mnt
# 使用空檔案建立一個檔案系統
# cd /root/shell
# 生成200M的空檔案
# dd if=/dev/zero of=foo.img bs=1M count=200
# 建立一個loop devices
# losetup /dev/loop0 foo.img
# 在loop devices上建立一個ext3檔案系統
# mke2fs -j -c /dev/loop0 200000
# 使用/mnt/foo目錄掛載/dev/loop0
# mount -t ext3 /dev/loop0 /mnt/foo
# 在/mnt/foo/目錄產生一個測試檔案file.out
# dd if=/dev/zero of=/mnt/foo/file.out bs=1M count=100
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  1.5G   90G   2% /
/dev/sda1             190M   12M  169M   7% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda3              97G  6.3G   85G   7% /usr
/dev/sda6             191G  408M  181G   1% /var
tmpfs                 300M  201M  100M  67% /mnt
/dev/loop0            190M  106M   74M  60% /mnt/foo
# /mnt/foo目錄掛載方式偽裝已經完成

# 刪除檔案偽裝
# 編寫一個死迴圈產生測試檔案
# cat /root/shell/foo.sh
#!/bin/bash
# set -x
foo=$(seq 1 500)

while :
do
   echo $foo
done
# 生成一個測試檔案test.out佔用/mnt目錄的空間
# nohup /root/shell/foo.sh >/mnt/test.out 2>&1 &
# 刪除測試檔案
# rm /mnt/test.out
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              97G  1.5G   90G   2% /
/dev/sda1             190M   12M  169M   7% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda3              97G  6.3G   85G   7% /usr
/dev/sda6             191G  408M  181G   1% /var
tmpfs                 300M  300M     0 100% /mnt
/dev/loop0            190M  106M   74M  60% /mnt/foo

相關推薦

(磁碟空間滿故障排除

磁碟空間滿一般情況下使用du可以快速定位到那個目錄佔用了大量的磁碟空間。 這裡主要講兩個使用du無法檢視的情況。 # 現象/mnt分割槽磁碟使用率達到100% # df -h Filesystem            Size  Used Avail Use% Mounte

雲伺服器 ECS Linux 磁碟空間滿(含inode滿問題排查方法

問題描述在雲伺服器ECS Linux系統內建立檔案時,出現類似如下空間不足提示:No space left on device …問題原因導致該問題的可能原因包括:磁碟分割槽空間使用率達到百分之百。磁碟分割槽inode使用率達到百分之百。殭屍檔案:已刪除檔案因控制代碼被佔用未

du命令解決linux磁碟空間滿的問題(很不錯的哦

首先你要確定是不是真正的是因為資料空間佔滿磁碟,經常是因為某個程式的日誌佔滿了空間。當發現磁碟滿了以後不要著急,使用以下命令從根目錄開始排除查詢哪個資料夾最大:du --max-depth=1 找到最大的目錄後,進入目錄再執行上面的命令,逐步就找到大空間的檔案夾了,如果是

docker容器存放目錄磁碟空間滿了,轉移資料修改Docker預設儲存位置

  今天在Liunx伺服器上重啟docker的時候,發現容器啟動不了了,報的錯誤是:"ERROR:cannot  create temporary directory!"。我的猜測應該就是磁碟空間滿了,於是執行命令"df -h",出來的結果是 掛載點/var/lib/dock

docker容器存放目錄磁碟空間滿

      今天在Liunx伺服器上重啟docker的時候,發現容器啟動不了了,報的錯誤是:"ERROR:cannot  create temporary directory!"。我的猜測應該就是磁碟

解決docker容器存放目錄磁碟空間滿了問題

  找個空間大的目錄 mkdir docker/lib rsync -avz /var/lib/docker/ /home/k8s/docker/lib/   修改配置檔案      centos ExecStar

一個不錯的故障分析模式FMESA方法。

  FMEA 介紹 FMEA(Failure mode and effects analysis,故障模式與影響分析)又稱為失效模式與後果分析、失效模式與效應分析、故障模式與後果分析等,專欄採用“故障模式與影響分析”,因為這個中文翻譯更加符合可用性的語境。FMEA 是一種在各

磁碟空間滿了之後MySQL會怎樣

導讀 當磁碟空間爆滿後,MySQL會發生什麼事呢?又應該怎麼應對? 會發生什麼事 當磁碟空間寫滿了之後,MySQL是無法再寫入任何資料的,包括對錶資料的寫入,以及binlog、binlog-index等檔案。 當然了,因為InnoDB是可以把髒資料先放在記憶體裡,所以不

linux磁碟空間滿了後怎麼去判定哪個地方佔了多大的空間並回收

df -h    #檢視磁碟空間佔用情況 du -s /* |sort -nr    #檢視那個目錄佔用空間大 du -h –max-depth=1    #檢視當前目錄下資料夾大小情況 lsof | grep

【Greenplum】Greenplum 磁碟空間滿了資料庫宕機解決方法

一、背景 後臺一直往 Greenplum 資料庫生成資料,由於沒關注磁碟空間,導致資料儲存空間利用率達到100%,資料庫宕機無法啟動。 當然上述情況是可以通過很多方式規避的: 利用率達到70%時擴充套件空間 利用率達到70%時清理資料庫無用資料 在資料目錄下放

Linux解決磁碟空間滿了的問題

1、用命令 df -h 判斷是否真的是磁碟空間滿了,如果是則進入下一步; 2、用 find / -size +10G -print 命令找出超大的檔案(如該命令中大於10G的檔案),判斷是否有用,如無用,則刪除; 3、用命令 du -sh * | sort -nr | gr

linux環境下根目錄磁碟空間滿導致資料庫無法啟動的問題的解決

1、登陸資料庫時,把磁碟空間不足,無法登陸 [[email protected]flash_recovery_area]$sqlplus/assysdba SQL*Plus: Release10.2.0.1.0-Productionon 星期五 11月 2817:

解決阿里雲ECS磁碟空間滿的問題

rsync -avz "-e ssh -p 133XX" [email protected]:/home/nginx/nginx_data /geexek/nginx/ 第二步,根據上面教

解決Linux磁碟空間滿的“軟”辦法

http://itlab.idcquan.com/linux/administer/802363.html 由於當初安裝系統時設計不合理,有些分割槽分的過小,以及網路通訊故障等造成日誌檔案迅速增長等其他原因都可能表現為磁碟空間滿,造成無法讀寫磁碟,應用程式無法執行等。下

Linux系統之TroubleShooting(故障排除

無法開機 好用 修改文件 技術分享 tin contain tor padding grub.conf 盡管Linux系統非常強大,穩定,但是我們在使用過程當中,如果人為操作不當,仍然會影響系統,甚至可能使得系統無法開機,無法運行服務等等各種問題。那麽這篇博文就總結一下一些

創建表空間

文件的 temporary 回滾 http 碎片 重要 .html temp 希望 原文地址:http://blog.chinaunix.net/uid-20802110-id-2105656.html CREATE [UNDO] TABLESPACE tablesp

Linux磁盤空間滿故障處理

linux磁盤空間占滿故障處理Linux磁盤占滿當磁盤被某大文件占滿時,而且此大文件正在被某些進程讀寫並占用著,此時無法刪除和置空此文件,只能先找到占用大文件的進程,然後終止進程,最後置空此文件。實例如下:在/boot分區中創建大文件test,將boot分區的磁盤占滿,通過另外一個終端進入主機,vim編輯此t

AVR開發 Arduino方法(附二 故障排除:燒錄引導程序

開發 沒有響應 image left 響應 asp 故障 引導 排除   在“內存子系統”一章中我們曾提到,Arduino UNO R3開發板上的ATMega328P有0.5KB的Flash空間用於引導程序;因為有引導程序的支持,Arduino可以使用串口上傳程序而無需編程

PostgreSQL CPU滿(100%)性能分析及優化(

mark ike -- 過多 mar 是不是 影響 sas sql日誌 PostgreSQL CPU滿(100%)性能分析及優化 轉自:https://help.aliyun.com/knowledge_detail/43562.html 在數據庫運維當中,

Linux虛擬地址空間布局以及進程棧和線程棧總結(

開始 系統初始 後來 文本 lov fault 和數 ps命令 變量大小 一:Linux虛擬地址空間布局 (轉自:Linux虛擬地址空間布局) 在多任務操作系統中,每個進程都運行在屬於自己的內存沙盤中。這個沙盤就是虛擬地址空間(Virtual Address Spac