lsblk 指令
在Linux系统中,lsblk
(列表块设备)命令是一个非常实用的工具,用于显示所有可用的块设备信息,如硬盘、USB驱动器、SD卡以及它们的分区。这个命令以易于理解的树状结构展示这些信息,清晰地表明了设备间的层次关系和依赖性。
当你运行 lsblk
命令不带任何参数时,它通常会提供以下类型的输出信息:
- 设备名称(NAME)
- 设备的大/小(SIZE)
- 设备是否可移动(RM,yes 或 no)
- 是否为只读(RO,yes 或 no)
- 设备的主次设备号(MAJ:MIN)
- 设备挂载点(MOUNTPOINT),如果有的话
此外,通过使用不同的选项,lsblk
还能提供更多详细信息,比如:
-f
或--fs
:显示文件系统类型、标签和UUID。-m
或--mountpoints
:只显示已挂载的块设备及其挂载点。-o
或--output
:指定要显示的列,可以自定义输出内容。-p
或--paths
:显示设备的完整路径。-s
或--scsi
:递归显示SCSI设备的层次结构。
lsblk
是系统管理员和高级用户进行存储设备管理和故障排查时不可或缺的工具。
iostat 指令
iostat
是一个用于监控Linux系统中CPU使用情况和磁盘I/O统计信息的命令行工具,它是sysstat包的一部分。这个命令对于分析系统性能,特别是与磁盘I/O相关的问题非常有用。下面是关于如何使用 iostat
的一些基本信息和常用选项:
基本使用
不带任何选项运行 iostat
将显示自从系统启动以来的平均CPU使用情况和磁盘I/O统计。如果你想要实时查看动态变化,需要指定采样间隔和采样次数,例如 iostat 1 10
表示每秒采集一次数据,总共采集10次。
常用选项
- -c 或 --cpu:仅显示CPU使用情况。
- -d 或 --disk:仅显示磁盘I/O统计信息。
- -x:显示扩展的I/O统计信息,包含更详细的设备级统计数据。
- -k:以KB为单位显示数据传输量。
- -m:以MB为单位显示数据传输量。
- -t 或 --timestamp:在输出中包含时间戳。
- -p [设备名]:指定要监控的磁盘或分区,而不是列出所有设备。
示例输出
一个典型的输出可能包括如下几列(具体列可能因版本和选项不同而有所差异):
- Device:磁盘或分区的名称。
- tps:每秒发生的I/O传输次数(读取+写入)。
- kB_read/s:每秒从设备读取的数据量(以KB为单位)。
- kB_wrtn/s:每秒写入到设备的数据量(以KB为单位)。
- kB_read:总读取数据量(以KB为单位)。
- kB_wrtn:总写入数据量(以KB为单位)。
- rrqm/s , wrqm/s:每秒合并的读/写请求次数。
- r/s , w/s:每秒实际的读/写操作次数。
- aqu-sz:平均队列长度。
- await:I/O操作的平均等待时间(包括队列等待时间和实际服务时间,以毫秒为单位)。
- svctm:I/O操作的平均服务时间(不包括队列等待时间,以毫秒为单位)。
使用 iostat
可以帮助识别系统中的I/O瓶颈,监控磁盘活动,并据此进行性能调优或问题诊断。
在 iostat
的输出中,avg-cpu
这一行提供了关于系统CPU使用情况的平均百分比数据。这一行中的各个列代表了CPU时间在不同类型的活动上所占的比例,具体包括:
%user
:用户态CPU时间百分比。这表示运行非内核程序所占用的CPU时间。%nice
:nice时间百分比。当进程以nice值运行时(即低优先级),其占用CPU的时间会被计入此列。%system
:系统态CPU时间百分比。这部分时间是操作系统内核执行任务所花费的,比如系统调用和中断处理。%iowait
:I/O等待时间百分比。表示CPU空闲且等待I/O操作完成的时间比例。较高的 %iowait 可能意味着磁盘I/O瓶颈。%steal
(在某些系统中也可能是%guest
或%guest_nice
):虚拟化环境中其他虚拟机偷取的时间百分比,对于非虚拟化环境通常为0。%idle
:CPU空闲时间百分比。这是CPU未被任何任务占用的时间。
通过观察 avg-cpu
行中的数据,你可以大致了解系统的CPU资源是如何被分配和使用的,进而判断是否存在CPU瓶颈或者I/O等待等问题。