在 Mac OS X 中测量一段时间内写入磁盘的字节数

mmg*_*mgg 6 mac macos

我正在寻找一种方法来获取一段时间内写入磁盘的数据量。

具体来说,在一天结束时,我希望能够找出一天中写入磁盘的总字节数。

我一直在寻找解决方案,但还没有任何运气。我以为我很接近iostat,但这似乎只监视当前活动。我想我正在寻找可以分析过去活动的东西。

Gia*_*968 5

您说iostat只监控当前活动,但它是一个非常灵活/强大的工具,有很多选项。例如,您可以按照这些简单的步骤实现您的确切目标。

首先,打开 Mac OS X “终端”并运行此命令,您可以获得已连接磁盘的列表:

diskutil list
Run Code Online (Sandbox Code Playgroud)

在我的系统上,输出是这样的:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS HardDisk                499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS HardDisk_BACKUP         120.4 GB   disk1s2
   3:                  Apple_HFS Storage_1               1.9 TB     disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Storage_2               2.0 TB     disk2s2
Run Code Online (Sandbox Code Playgroud)

现在看分区看父母的要检查的磁盘,但要注意到/dev/disk0/dev/disk1/dev/disk2,所显示等...磁盘/设备编号。假设您要检查传输到的数据disk0;所以iostat像这样输入以下命令:

iostat -Id disk0
Run Code Online (Sandbox Code Playgroud)

我的 Mac OS X 10.9.5 系统上的输出是这样的:

       disk0 
 KB/t xfrs   MB 
17.12 1277872 21364.96 
Run Code Online (Sandbox Code Playgroud)

该行数据反映了从安装设备到iostat运行命令的数据传输统计信息。设置的两个选项iostat如下;文本直接取自手册页,您可以通过man iostat从命令行输入来查看:

  • -d:仅显示设备统计信息。如果打开此标志,则仅显示设备统计信息,除非-C-U-T还指定启用 CPU、平均负载或 TTY 统计信息的显示。

  • -I:显示给定时间段的总统计数据,而不是该时间段内每秒的平均统计数据。

返回的三个幻数 - 描述为KB/txfrsMB- 分解如下:

  • KB/t : 每次传输的千字节
  • xfrs : 传输总数
  • MB : 传输的总兆字节数

如果你想实时监控——比如每 3 秒的间隔——你可以运行这个带有-w标志的命令:

iostat -Idw 3 disk0
Run Code Online (Sandbox Code Playgroud)

我的 Mac OS X 10.9.5 系统上的输出如下:

       disk0 
 KB/t xfrs   MB 
17.13 1279283 21396.20 
 8.49  74  0.61 
 8.49  74  0.61 
 8.49  74  0.61 
29.33 193  5.53 
62.97 219 13.47 
50.51 294 14.50 
Run Code Online (Sandbox Code Playgroud)

第一个数字就像第一个例子;累积到命令运行的那一刻。接下来的项目是每 3 秒更新一次。前3项是盘基本接近休息。接下来的 3 个较高数字上下波动的项目反映了我在“Finder”中打开驱动器并浏览了一下这个例子。

如果您愿意,可以将这些iostat命令集成到 Bash 脚本中,并可能在 cron 作业中运行它们,但这超出了本问答线程的范围。