可以将磁盘视为若干个区块(block),区块大小在磁盘格式化时即确定。
文件的数据至少占用一个区块,如果超出一个区块,则放到另一个区块,以此类推。
占用空间 >= 文件大小,如果存在大量小文件,其差距更加悬殊。
划分分区的一部分存放文件信息,更大的一部分存放文件内容。
存放文件信息的区域被划分为多个 inode,一个 inode 存放一个文件的信息。
存放文件内容的区域划分为多个区块,文件信息中存有文件内容对应的区块。
一个区块末尾存放指针,指向下一个区块。
第二种方法易造成磁盘碎片,第一种基本上不太需要碎片整理。
Linux 有 VFS(虚拟文件系统)的功能,只要系统支持,一般情况下,程序不需要考虑具体的文件系统是什么。
Linux 支持多种文件系统,可以通过该目录查看支持的文件系统:
ls /lib/modules/$(uname -r)/kernel/fs
安装系统分区时,Ubuntu 默认是 ext4 文件系统,CentOS 默认是 xfs 文件系统。
df
- 查看各文件系统磁盘使用量df [选项] [目录或文件]
后接目录或文件,表示查看该目录 / 文件所在分区的磁盘使用量。
选项:
-a
:列出所有的文件系统-k
、-m
:以 KiB、MiB 的形式显示(默认是 KiB)-h
:以人类易读的形式显示-H
:同上,但将 *iB (1024 进位)替换为 *B(1000 进位)-T
:显示文件系统类型-i
:显示 inode 数量,而非磁盘容量例:
ding@ding-server:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8151776 0 8151776 0% /dev
tmpfs 1639352 2488 1636864 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 102687672 48447868 48980540 50% /
tmpfs 8196752 0 8196752 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 8196752 0 8196752 0% /sys/fs/cgroup
/dev/sda2 1515376 213156 1207196 16% /boot
tmpfs 1639348 0 1639348 0% /run/user/1000
占用空间最好不要超过 90%。
du
- 查看文件 / 目录的磁盘使用量du [选项] [目录或文件]
不写目录或文件,则分析当前目录的情况。
如遇到无权访问的文件,会报错(但不会停止),有标准错误输出。
选项:
-a
:列出目录下所有的文件与目录的使用量(默认仅列出目录下所有的目录的使用量)-h
:以人类易读的形式显示-s
:仅列出给定目录 / 文件的使用总量-S
:父目录的使用量不包括子目录的-k
、-m
:以 KiB、MiB 的方式显示(默认是 KiB)例:
ding@ding-server:~$ du smurf_153_conf/document/
744 smurf_153_conf/document/assets/环境配置
40 smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
44 smurf_153_conf/document/assets/nacos_config
932 smurf_153_conf/document/assets
996 smurf_153_conf/document/
ding@ding-server:~$ du -m smurf_153_conf/document/
1 smurf_153_conf/document/assets/环境配置
1 smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
1 smurf_153_conf/document/assets/nacos_config
1 smurf_153_conf/document/assets
1 smurf_153_conf/document/
ding@ding-server:~$ du -S smurf_153_conf/document/
744 smurf_153_conf/document/assets/环境配置
40 smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
4 smurf_153_conf/document/assets/nacos_config
144 smurf_153_conf/document/assets
64 smurf_153_conf/document/
ding@ding-server:~$ du -s smurf_153_conf/document/
996 smurf_153_conf/document/