Home  >  Article  >  System Tutorial  >  Linux disk space is abnormally full, how to check?

Linux disk space is abnormally full, how to check?

WBOY
WBOYforward
2024-02-11 20:57:14852browse

During the server operation and maintenance process, we often encounter such a situation and receive a server disk space alarm: <br>

Linux 磁盘空间异常爆满,该怎么查?

Log in to the server and view it through df -Hl

Linux 磁盘空间异常爆满,该怎么查?

is consistent with the alarm information. Then we need to find the directory or file that causes the disk space to become full.

How to find directories or files that take up a lot of space?

A relatively stupid method is to use the du -hs command in the root directory to list the space occupied by each directory

Linux 磁盘空间异常爆满,该怎么查?

Then use the same method to continue to the corresponding directory to find

A more efficient method is to set the directory depth of the query through the -d parameter of du, or -max-depth. As the directory depth increases, a lot of the queried directories will be displayed. At this time, you can filter through grep. .

du -h -d 2|grep [GT] |sort -nr  
du -h --max-depth=2|grep [GT] |sort -nr  

In this way, you can search for large directories that occupy disk space in units of G or T and sort them

Or you can query it through find

find / -type f -size +1G -exec du -h {} \;  

In terms of efficiency, find is faster and more flexible than du.

Through these two methods, we can quickly find the culprit taking up disk space.

Do you think it’s that simple? Many times, you will find that after searching for a long time through find or du, you will find that the total occupied space is very different from the disk space occupied by df, such as the two pictures above.

Viewed through df, the disk usage is 37G, but viewed through du -hs in the root directory, the total adds up to almost 10G, there is no hidden directory, who is eating the space?

Obviously, there is space occupied by deleted files. The files are deleted, but the resources are not released.

I introduced a very useful command before: lsof, we can check it through the following command

lsof +L1  
Linux 磁盘空间异常爆满,该怎么查?

It can be seen from the results that there is a large log file of about 28G. It was deleted, but the space was not released. This is a very common situation.

The corresponding solution is to restart the tomcat application and free up space

Disk space is being eaten up for no reason?

There is another question that is often asked, that is, the disk viewed through df

Linux 磁盘空间异常爆满,该怎么查?

You will find that the sum of Used and Avail is not enough for Size, and part of it is eaten inexplicably

In fact, this is a security policy of the Linux file system. By default, it will reserve 5% of the disk space for the root user for emergency use. This can ensure that some key applications (such as databases) have some leeway when the hard disk is full, so that they will not crash immediately

We can modify the ratio of reserved space through tune2fs

tune2fs -m 1 /dev/vda1  

You can see the before and after comparison through the picture below

Linux 磁盘空间异常爆满,该怎么查?

The space that was eaten up in this way is released!

The above is the detailed content of Linux disk space is abnormally full, how to check?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete