linux 磁盤佔用的排查流程

Linux 服務器在使用過程當中可能會遇到各類問題,其中之一就是「沒有可用空間」。linux

遇到這種狀況,就須要進行排查,定位到消耗了磁盤的那個文件夾。docker

流程以下:centos

1. df -h

df -h 會顯示出全部掛載點的磁盤空間使用狀況。-h 表示以 1k、1M、1G 爲單位。緩存

Filesystem(文件系統)      Size  Used Avail Use% Mounted on(分區)
/dev/mapper/centos-root   98G  6.1G   92G   7% /
devtmpfs                 4.8G     0  4.8G   0% /dev
tmpfs                    4.9G     0  4.9G   0% /dev/shm
tmpfs                    4.9G   33M  4.8G   1% /run
tmpfs                    4.9G     0  4.9G   0% /sys/fs/cgroup
/dev/sda1               1014M  189M  826M  19% /boot
tmpfs                    984M     0  984M   0% /run/user/0
overlay                   98G  6.1G   92G   7% /var/lib/docker/overlay2/8671cfef128ee6418ab1796ebba47b23283fdf1d338431b4a4ebdc2786485000/merged
shm                       64M     0   64M   0% /var/lib/docker/containers/d945d7043afb824a94ab8e11c3f61354945e40602b0212eb6cd1a794a5c2c475/mounts/shm
overlay                   98G  6.1G   92G   7% /var/lib/docker/overlay2/c24f633841568bb4672931f2da809b47335be7f085bf23237af2cd15bddc27a1/merged
shm                       64M     0   64M   0% /var/lib/docker/containers/e685309b470dde35837620928ba67d404722c4bba475f84ed0cb6ca823504907/mounts/shm
overlay                   98G  6.1G   92G   7% /var/lib/docker/overlay2/62cc31effdbb439942c43f1341b6b07fd933200b6c27a52c6a88ac4b63ae93e6/merged
shm                       64M     0   64M   0% /var/lib/docker/containers/7f7593fc8d14ddbe7dd1a946ccf08adf2bef415a7560db1c12d0ab0abb9e582a/mounts/shm

能夠看到主分區 / 已經使用了 7%,如今假設由於某個軟件的緩存,致使這個分區 / 的可用空間很少了。如今要排查到緩存所在位置。服務器

du -h --max-depth=1

df 是查看各掛載點的空間使用狀況,而 du 是用於查看各目錄/文件的大小。app

咱們須要找到 / 分區中真正消耗掉內存的那個文件/文件夾。elasticsearch

  1. 首先 cd /
  2. 使用 du 命令查看該目錄下的空間使用狀況:du -h --max-depth=1
[root@192-168-1-64 ~]# du -h --max-depth=1
157M    ./boot
0       ./dev
du: cannot access './proc/12646/task/12646/fd/4': No such file or directory
du: cannot access './proc/12646/task/12646/fdinfo/4': No such file or directory
du: cannot access './proc/12646/fd/4': No such file or directory
du: cannot access './proc/12646/fdinfo/4': No such file or directory
0       ./proc
33M     ./run
0       ./sys
34M     ./etc
26M     ./root
4.5G    ./var
0       ./tmp
1.6G    ./usr
0       ./home
0       ./media
0       ./mnt
2.6G    ./opt
0       ./srv
8.8G    .

在輸出結果中找到佔用磁盤過多的文件夾,cd 進去,再繼續執行 du -h --max-depth=1 命令查看。.net

如此查看幾回,通常就能定位到問題文件夾。code

經過這樣的排查,發現公司此次遇到的問題,是 elasticsearch 的數據文件夾把磁盤消耗光了。blog

定位到問題後,再依據該數據的重要程度,來決定是直接清空,仍是如何處理它。

參考

相關文章
相關標籤/搜索