7.磁盘命令

Linux系统提供了一套方便的命令,可以帮助您查看磁盘的繁忙程度,而不仅仅是有多满。 在这篇文章中,我们将研究五个非常有用的命令来查看磁盘活动。 可能必须将两个命令(iostat和ioping)添加到您的系统中,这两个命令要求您使用sudo权限,但所有五个命令都提供了查看磁盘活动的有用方法。

7.1. du命令

du(是 disk usage 的简称)用来显示目录或文件的大小,查找文件和目录的磁盘使用情况的命令。du 命令在与各种选项一起使用时能以多种格式提供结果。

7.1.1. 使用方法

语法:du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][–block-size][–exclude=<目录或文件>] [–max-depth=<目录层数>][–help][–version][目录或文件]

补充说明:du会显示指定的目录或文件所占用的磁盘空间。

参数:
(1)-a或-all 显示目录中个别文件的大小。
(2)-b或-bytes 显示目录或文件大小时,以byte为单位。
(3)-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
(4)-D或--dereference-args 显示指定符号连接的源文件大小。
(5)-h或--human-readable 以K,M,G为单位,提高信息的可读性。
(6)-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
(7)-k或--kilobytes 以1024 bytes为单位。
(8)-l或--count-links 重复计算硬件连接的文件。
(9)-L<符号连接>或--dereference<符号连接>显示选项中所指定符号连接的源文件大小。
(10)-m或--megabytes 以1MB为单位。
(11)-s或--summarize 仅显示总计。
(12)-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
(13)-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
(14)-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
(15)--exclude=<目录或文件> 略过指定的目录或文件。
(16)--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
(17)--help 显示帮助。
(18)--version显示版本信息。

7.1.2.实例操作

1.查看目录下所有文件的大小并按照大小排序
$ du -sh * | sort -rh
7. ubuntu的实践——磁盘命令

2.统计当前目录的大小,以直观方式展现
$ du -sh
7. ubuntu的实践——磁盘命令

查看当前目录总共占的容量,而不单独列出各子项占用的容量。
3.查看当前目录下所有一级子目录文件夹大小 并排序
$ sudo du -h --max-depth=1 |sort
7. ubuntu的实践——磁盘命令

4.以人性化的方式显示文件大小
$ du -h Debian.iso
7. ubuntu的实践——磁盘命令

5.查看当前目录下一级子文件和子目录占用的磁盘容量
$ du -lh --max-depth=1
7. ubuntu的实践——磁盘命令

当–max-depth设定为0时, 只显示当前文件夹总大小,可见,–max-depth=0的作用,相当于-s
6.递归查询文件大小
-0, --null
用NUL结束每个输出行,而不是换行
-a, --all
递归式写计数的所有文件,不只是目录
$ du -a
可见如果只是du则递归查询当前所有目录的大小,如果指定-a,则也也递归查询所有文件大小
如下图:

7. ubuntu的实践——磁盘命令

7.2.dstat

尽管dstat命令以字母“d”开头,但它提供的数据不仅仅是磁盘活动。 如果要仅查看磁盘活动,可以使用-d选项。 如下所示,您将获得连续的磁盘读/写测量列表,直到您使用^ c停止显示。 请注意,在第一个报告之后,显示中的每个后续行将在以下时间间隔内报告磁盘活动,默认值仅为一秒。[email protected]:~$
[email protected]:~$ dstat -d
7. ubuntu的实践——磁盘命令

在-d选项后面加一个数字会将间隔设置为该秒数。
[email protected]:~$ dstat -d 10

7. ubuntu的实践——磁盘命令

注意,报告的数据可以以许多不同的单位显示 - 例如,M(兆字节),k(千字节)和B(字节)。
如果没有选项,dstat命令也会向您显示许多其他信息 - 指示CPU如何花费时间,显示网络和分页活动,以及报告中断和上下文切换。
[email protected]:~$ dstat
7. ubuntu的实践——磁盘命令

dstat命令提供了对整体Linux系统性能的宝贵见解,几乎用一组结合其功能的灵活而强大的命令取代了vmstat,netstat,iostat和ifstat等旧工具的集合。 有关dstat命令可以提供的其他信息的更多信息,请参阅dstat命令上的这篇文章。

7.3.Iostat

7.3.1.安装

iostat 由 Red Hat Enterprise Linux AS 发布。同时 iostat 也是 Sysstat 的一部分。所以我们安装要安装sysstat

首先安装 sysstat 包
sudo apt-get install sysstat
7. ubuntu的实践——磁盘命令

7.3.2.使用

iostat命令通过观察设备相对于其平均传输速率的活动时间来帮助监视系统输入/输出设备负载。 它有时用于评估磁盘之间的活动平衡。
[email protected]:~$ iostat
7. ubuntu的实践——磁盘命令

当然,当您只想专注于磁盘时,Linux环路设备上提供的所有统计信息都会使显示混乱。 但是,该命令提供了-p选项,允许您只查看磁盘 - 如下面的命令所示。
[email protected]:~$ iostat -p sda
7. ubuntu的实践——磁盘命令

请注意,tps指的是每秒传输次数。
您也可以通过iostat提供重复报告。 在下面的示例中,我们使用-d选项每五秒进行一次测量。
[email protected]:~$ iostat -p sda -d 5
7. ubuntu的实践——磁盘命令

如果您希望省略第一个(启动后的统计信息)报告,请在命令中添加-y。
[email protected]:~$ iostat -p sda -d 5 -y
7. ubuntu的实践——磁盘命令

如果是两个磁盘,可以看看第二个磁盘驱动器,命令如下:
[email protected]:~$ iostat -p sdb

7.3.3.命令dstat

Dstat提供了有关Linux系统性能的宝贵见解,几乎取代了较旧的工具,如vmstat,netstat,iostat和ifstat。
想要对Linux系统进行快速性能检查吗? 您可能需要查看dstat命令。 Dstat提供了有关Linux系统性能的宝贵见解,几乎取代了一系列旧工具,如vmstat,netstat,iostat和ifstat,它们具有结合其功能的灵活而强大的命令。
使用这一个命令,您可以查看虚拟内存,网络连接和接口,CPU活动,输入/输出设备等。

7.3.3.1.dstat安装

[email protected]:~$ sudo apt-get install dstat
7. ubuntu的实践——磁盘命令

7.3.3.2.dstat选项和默认值

首先,让我们从一个相当简单的命令开始。 使用dstat -c(CPU)选项,dstat显示CPU统计信息。 在下面的示例中,我们要求两秒间隔和六个报告。
[email protected]:~$ dstat -c 2 6

7. ubuntu的实践——磁盘命令
7. ubuntu的实践——磁盘命令

请注意,此报告中的第一行数据看起来与其他数据非常不同,它们为您提供自系统上次引导以来的平均值,并且无论指定的时间间隔如何都会立即返回。 在这个例子中,我们看到系统平均空闲(96%),但现在在用户和系统处理任务之间忙着工作。
如果您没有为dstat提供任何选项,该命令将使用默认设置(-cdngy)选项集。 这些包括:

  • c - cpu
  • d - 磁盘
  • n - 网络
  • g - 分页统计
  • y - 系统统计数据
    此命令的输出将类似于您在下面看到的内容。
    [email protected]:~$ dstat 2 10

7. ubuntu的实践——磁盘命令
7. ubuntu的实践——磁盘命令

您可能已经注意到上面显示的输出顶部附近的“您没有选择任何统计信息”消息。 要轻松解决这个问题,只需添加-a选项即可。 它将选择默认选项并省略警告消息。
[email protected]:~$ dstat -a 2 5
7. ubuntu的实践——磁盘命令

7. ubuntu的实践——磁盘命令

在这种“无选项”方法中,您仍然可以设置每个时间间隔的时间(以秒为单位)以及要查看的时间间隔数。 如果未指定间隔数,则命令将继续运行,直到您使用^ c停止它。
这告诉你什么?
在上面显示的输出中,我们看到了被查询的系统相当繁忙的证据。 没有报告空闲时间; CPU将所有时间都花在用户和系统任务之间。 将此与报告进行比较,报告显示系统闲置的时间是一半。
[email protected]:~/www.linuxidc.com/Linux公社$ dstat -a 2
7. ubuntu的实践——磁盘命令

另一方面,磁盘一点也不繁忙,读写为零。
要想熟练地评估系统性能,一个关键就是定期运行这些命令——即使你不知道有必要质疑系统运行得有多好。如果您了解了服务器的正常性能,您将更容易发现问题。
这是另一个例子,这个有一些磁盘活动:
[email protected]:~/www.linuxidc.com/Linux公社$ dstat -a 2 5
7. ubuntu的实践——磁盘命令

在所有这些示例中,我们没有看到任何分页(将可执行映像加载到进程的虚拟内存中)活动。 有一个相当恒定的中断和上下文切换正在进行,但数字都非常适度。
在下面的命令中,我们正在查看内存使用情况报告。 请注意与正在使用的内存相比的可用内存量。 这个系统没有受到挑战。
[email protected]:~/www.linuxidc.com/Linux公社$ dstat -m 2 3

7. ubuntu的实践——磁盘命令

在下一个命令中,我们正在查看高级内存使用情况报告。 提供了一些额外的内存统计信息
[email protected]:~/www.linuxidc.com/Linux公社$ dstat --mem-adv
7. ubuntu的实践——磁盘命令

在下一个命令中,我们正在查看正在使用的打开文件和inode。
[email protected]:~/www.linuxidc.com/Linux公社$ dstat --fs
7. ubuntu的实践——磁盘命令

在最后一个示例中,我们生成标准报告,但添加了一个。 我们还将报告写入.csv文件,以便可以在其他工具(如Excel)中使用。
[email protected]:~/www.linuxidc.com/Linux公社$ dstat --output /tmp/stats.csv
7. ubuntu的实践——磁盘命令

这是csv文件的样例:
[email protected]:~/www.linuxidc.com/Linux公社$ cat /tmp/stats.csv

7. ubuntu的实践——磁盘命令

什么是dstat?
如前所述,dstat是一个很好的工具,可用于查看系统性能的所有方面。 但是这个问题的另一个答案是它是一个Python脚本,如果你想看看它是如何工作的,你可以自由地阅读它。
[email protected]:~/www.linuxidc.com/Linux公社$ which dstat

[email protected]:~/www.linuxidc.com/Linux公社$ file /usr/bin/dstat

[email protected]:~/www.linuxidc.com/Linux公社$ more /usr/bin/dstat | head -6

7. ubuntu的实践——磁盘命令

7.4.iotop

7.4.1.安装

[email protected]:~$ sudo iotop -d 5

7. ubuntu的实践——磁盘命令

7.4.2.使用

iotop命令是用于查看磁盘I/O的顶级实用程序。 它收集Linux内核提供的I/O使用信息,以便您了解哪些进程在磁盘I/O方面最苛刻。 在下面的示例中,循环时间已设置为5秒。 显示屏将自动更新,覆盖以前的输出。
[email protected]:~$ sudo iotop -d 5
7. ubuntu的实践——磁盘命令

7.5.ioping

7.5.1.安装

[email protected]:~$sudo apt-get install ioping

7. ubuntu的实践——磁盘命令

7.5.2.使用

ioping命令是一种完全不同类型的工具,但它可以报告磁盘延迟 - 磁盘响应请求所需的时间 - 并且可以帮助诊断磁盘问题。
[email protected]:~$ sudo ioping /dev/sda1

7. ubuntu的实践——磁盘命令

7.6.atop

7.6.1.安装

[email protected]:~$ sudo apt-get install atop
7. ubuntu的实践——磁盘命令

7.6.2.使用

atop命令和top一样,提供了很多关于系统性能的信息,包括一些关于磁盘活动的统计信息。
[email protected]:~$ atop
7. ubuntu的实践——磁盘命令

如果您只想查看磁盘统计信息,可以使用以下命令轻松管理:
[email protected]:~$ atop | grep DSK

7. ubuntu的实践——磁盘命令

相关文章:

  • 2022-12-23
  • 2022-02-16
  • 2021-11-17
  • 2021-04-21
  • 2022-12-23
  • 2021-07-20
猜你喜欢
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2022-01-24
  • 2021-08-12
  • 2022-02-23
  • 2022-02-15
相关资源
相似解决方案