Linux教程(四)内存和磁盘相关命令

183 阅读5分钟

内存相关命令

free

free 命令的作用是显示系统内存的使用情况。常用选项有:

  • -h:以人类可读的格式(KB/MB/GB)显示内存大小。
  • -m:以 MB 为单位显示。
  • -s n:每隔 n 秒刷新一次输出。

代码示例如下:

free -h
# 输出示例:
#               total        used        free      shared  buff/cache   available
# Mem:           15G        3.2G        9.8G        180M        2.0G        11G
# Swap:          16G          0B         16G

其中:

  • Mem 是指内存的使用情况
  • Swap 是磁盘与内存进行交换的情况
  • total 是总内存大小
  • used 是已经使用内存的大小,包含共享内存
  • free 是未使用内存的大小
  • shared 是共享内存的大小
  • buff/cache 被buffer和cache使用的物理内存大小。其中(buff 是内核缓存;cache 是页面缓存,用于提高磁盘的读写操作)
  • available 还可以被应用程序使用的物理内存大小

vmstat

vmstat 命令的作用是实时报告系统的进程、内存、交换分区、I/O 块和 CPU 活动等关键性能指标。具体可见Linux vmstat命令详解:监控系统资源 - C语言中文网

vmstat 和 top 命令有什么区别?

  • top 提供进程级别的详细信息
  • vmstat 提供系统整体资源使用情况的概览

/proc/meminfo

/proc/meminfo 中保存了更详细的内存信息,我们可以通过 cat 命令来获取。代码示例如下:

cat /proc/meminfo
# 关键字段:
# MemTotal: 总物理内存
# MemFree: 空闲物理内存
# Buffers: 缓冲区大小
# Cached: 缓存大小
# SwapTotal/SwapFree: 交换空间大小

pmap

pmap 命令会显示进程的内存映射情况。示例如下

pmap 1234  # 查看PID为1234的进程内存映射

磁盘基本概念

扇区

image.png

上图是磁盘的结构,可以看到 扇区(Sector) 是每个磁道被扇面切割成的区域,是硬盘数据读/写的最小单元,一般为 512字节。目前计算机的存储设备不一定使用磁盘,但是沿用了扇区这一概念。

block 和 inode

Linux中将文件统统抽象成inodeblockblock记录文件实际的数据,inode记录文件的属性、权限、存储内容的block块等数据。

inode与文件是一对一关系,它的大小固定为128bytes,而block与文件是多对一关系,也就是说一个文件可以被存储在多个block中,block的大小一般为1K、2K、4K(在Ext2文件系统中)。每个inodeblock都有一个唯一的编号。

Linux 中还有一个 super block(超级块),它记录整个文件系统的信息,包括block与inode的总量、已经使用的inode和block的数量、未使用的inode和block的数量、block与inode的大小、文件系统的挂载时间、最近一次的写入时间、最近一次的磁盘检验时间等。

分区

Linux 中分区类似于Windows中把磁盘分为C、D盘,作用是:

  • 方便管理和使用,不同的分区有不同的作用
  • 有利于数据的安全,错误操作、重装系统只影响部分分区
  • 节约寻找文件的时间,可以只在一个分区寻找,而不是整个磁盘

在 Linux 中分区的存储有两种格式,分别是 MBR 和 GPT。其中 MBR 支持最大 2TB 的磁盘;而 GPT 的磁盘支持几乎没有限制,但是 GPT不适合32位的系统。

挂载

在 Linux 中,挂载磁盘是将新的磁盘设备连接到文件系统的过程,使得该磁盘可用于存储和访问文件。挂载磁盘是一个常见的任务,尤其在添加新硬盘或使用外部存储设备时。

符号链接(软链接)和硬链接

硬链接软链接
本质同一个inode,只是多个名字是不同的文件,其内容指向链接的文件,inode不同
是否可以跨分区硬链接不行软连接可以
目录硬链接无法创建目录链接软链接可以
相互关系硬链接没有主次之分,相互独立软链接依赖于原文件,原文件被删除,软链接即不可用
链接数硬链接删除增加会影响链接数软链接不会,因为inode不一样
相对路径硬链接创建时,原始文件路径是相对于当前路径。软链接创建时,原始文件路径是 相对于软链接的路径
文件类型硬链接的类型与原始文件类型一致软链接则会显示 symbolic link
创建方式硬链接创建:ln [原文件] [硬链接]软链接创建:ln -s [原文件] [软链接]

逻辑卷管理

由于传统的磁盘管理不能对我们的磁盘空间进行动态的管理。就诞生了逻辑卷管理的技术,它最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性

磁盘相关命令

df

df 命令作用是查看文件系统的磁盘使用情况。常用选项有:

  • -h:以人类可读格式显示。
  • -T:显示文件系统类型。
  • -i:查看 inode 使用情况。

代码示例如下:

df -h
# 输出示例:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        50G   30G   18G  63% /
# tmpfs           8.0G     0  8.0G   0% /dev/shm

du

du 命令用于查看目录或者文件的磁盘占用大小。常用选项为:

-h:人类可读格式。 -s:只显示总和。 -a:显示所有文件(包括子文件)。

代码示例如下:

du -sh /var/log  # 查看/var/log目录总大小
du -h --max-depth=1 /usr  # 查看/usr目录下各子目录大小