linux服务器清理内存方法

“no space left on device”(磁盘空间不足)问题

文章参考:

https://blog.csdn.net/m0_51590371/article/details/123177049
https://www.cnblogs.com/aspirant/p/3604801.html
https://www.linuxidc.com/Linux/2017-09/146689.htm

写得乱,可直接看原著文章。

在linux中,有两个概念,就是block和inode

block:用于存放实际数据 df -h
inode:存放文件属性 df -i

一、Inode

1、inode table (inode 表格)
iNode是用来存储数据属性信息的,iNode包含的属性包括:文件大小、属组、归属的用户组、读写权限、文件类型、修改时间、还包括指向文件实体的指针功能(iNode节点和block的对应关系),但是,iNode不包括文件名。

ls -i,就可以看到inode节点了。
inode除了记录文件属性的信息外,还会为每个文件进行信息索引,所以就有了inode的数值,操作系统根据指令,即可通过inode的值最快的找到相对应的文件实体。

inode是一串数字,不同的文件对应的inode在文件系统中是唯一的。inode相同的文件,互为硬链接文件(文件又一个入口)。一个文件被创建后至少要占用一个inode和一个block。如果一个文件很大,可能占多个block,如果文件很小,至少占一个,并且剩余空间不能被其他的文件使用。

因为inode要存放文件的属性信息,所以inode是有大小的,CentOS5 inode的默认大小为128字节,而CentOS6 inode的默认大小是256字节,inode的大小在文件系统被格式化之后就无法更改了,格式化前可以指定inode大小。

生成和指定iNode大小,mkfs.ext4 -b 2048 -I 256 /dev/sdb
查看iNode的总量和使用量命令:df -i

2、查看是否inode满了


image.png

find / -size +4k -type d |xargs ls -ldhi #查找系统中 目录大小大于1M(目录一般大小为4K,所以目录要是大了那么文件必然很多)

二、.data block (资料区块)
Block 是用来存储实际数据的。

Block是记录文件内容的区域,inode则是记录该文件的属性及其放置在哪个Block之内的信息。
理解:可以把iNode理解为一本书的目录,block理解为书的每一页。

磁盘读取数据是按block为单位读取的。一个文件可能占用多个block。每读取一个block就会消耗一次磁盘I/O。如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多。

一个block只能存放一个文件的内容,无论内容有多小。如果block 4K,那么存放1K的文件,剩余3K就浪费了。

block并非越大越好。block太大对于小文件存放就会浪费磁盘空间,例如:1000K的文件,block为4K,占用250个block,block为1K,占1000个block。文件较大时,block设置大一些会提升磁盘仿效效率。

3.小结
查看某分区的block和inode的数量,通常block比inode多
dumpe2fs /dev/sda2 |grep ‘Block count’
dumpe2fs /dev/sda2 |grep ‘Inode count’
dumpe2fs /dev/sda2 |grep ‘Block size’
dumpe2fs /dev/sda2 |grep ‘Inode size’

1.查看是否是block满了

df -h --查看所有block使用情况

image.png

du -sh /usr/* |grep G ###查找大文件

7.3G /usr/local

du -sh /usr/local/ |grep G

7.3G /usr/local/bin

du -sh /usr/local/bin/ |grep G

7.3G /usr/local/bin/1g

\rm -f /usr/local/bin/1g ###删除大文件

使用du -h -x --max-depth=1 ,查看占用过高的目录,对过高目录中的内容适当删减。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容