AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 889610
Accepted
tomsk
tomsk
Asked: 2017-03-05 13:34:56 +0800 CST2017-03-05 13:34:56 +0800 CST 2017-03-05 13:34:56 +0800 CST

在某个时期检查 SSD 的写入

  • 772

我想在 SSD 上安装 Ubuntu(我知道我必须设置 TRIM、noatime 等。)但我想知道我是否可以检查最后一天/周/月写入了多少 GB。

因为如果文件夹 /var 和 /tmp 在 SSD 上,我想测量每天在 SSD 上写入多少 GB。如果每天写入少于 10GB,我认为这很酷,并且不会对 SSD 造成太大损害。

不,我不想使用 ramdisk :)

ssd
  • 1 1 个回答
  • 2074 Views

1 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2017-03-06T09:27:22+08:002017-03-06T09:27:22+08:00

    smartmontools正如经常发生的那样,我开始重新发明包装中已经存在的轮子。该软件包为硬盘驱动器和 SSD(或者更专业的 SCSI 设备)提供了大量的诊断工具。特别是,smartctl命令是我们正在寻找的:

    $ sudo smartctl -A /dev/sda
    [sudo] password for xieerqi: 
    smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-65-generic] (local build)
    Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
    
    === START OF READ SMART DATA SECTION ===
    SMART Attributes Data Structure revision number: 18
    Vendor Specific SMART Attributes with Thresholds:
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      5 Runtime_Bad_Block       0x0000   000   000   000    Old_age   Offline      -       0
      9 Power_On_Hours          0x0000   100   100   000    Old_age   Offline      -       8080
     12 Power_Cycle_Count       0x0000   100   100   000    Old_age   Offline      -       1419
    171 Avail_OP_Block_Count    0x0000   100   100   000    Old_age   Offline      -       40907856
    174 Pwr_Cycle_Ct_Unplanned  0x0000   100   100   000    Old_age   Offline      -       78
    195 Total_Prog_Failures     0x0000   100   100   000    Old_age   Offline      -       0
    196 Total_Erase_Failures    0x0000   100   100   000    Old_age   Offline      -       0
    197 Total_Unc_Read_Failures 0x0000   100   100   000    Old_age   Offline      -       0
    208 Average_Erase_Count     0x0000   100   100   000    Old_age   Offline      -       179
    210 SATA_CRC_Error_Count    0x0000   100   100   000    Old_age   Offline      -       0
    224 In_Warranty             0x0000   100   100   000    Old_age   Offline      -       1
    233 Remaining_Lifetime_Perc 0x0000   095   095   000    Old_age   Offline      -       95
    241 Host_Writes_GiB         0x0000   100   100   000    Old_age   Offline      -       3133
    242 Host_Reads_GiB          0x0000   100   100   000    Old_age   Offline      -       2745
    249 Total_NAND_Prog_Ct_GiB  0x0000   100   100   000    Old_age   Offline      -       301548705
    

    您在上面看到的是我的 SSD 的属性列表。特别感兴趣的是属性 241 (Host_Writes_GiB) 和 242 (Host_Reads_GiB)。这些值以 GiB 为单位(这是计算机科学中的经典计量单位,以 1024 字节为单位,在本例中为 1024^3,而不是 SI 单位的 10 次幂)。

    在低级别,据我了解,此实用程序解析文件夹lifetime_write_kbytes中的实际文件/sys/fs。特别是,在我的例子中:

    $ cat /sys/fs/ext4/sda1/lifetime_write_kbytes              
    4793857835
    

    当然,这是一个命令行实用程序。如果您没有安装它(通过检查apt-cache policy smartmontools),然后通过安装它sudo apt-get install smartmontools。有Gnome Disks Utility作为 GUI 替代品,它随 Ubuntu 一起提供。

    但是有几个警告:

    • SMART信息必须由设备提供。如果设备相当便宜并且没有此类信息,那么就像我最初想通过监控/proc/diskstats文件做的那样,它需要重新发明轮子。
    • 具体属性必须由设备提供。例如,在smartmontools 网站上找到的关于 tnfd22 ssd 的信息不提供此类信息。

    还有一点问题:显示的结果信息是读/写的总历史。因此,您无法在最近 x 天中提取读/写。smartctl至少到目前为止我发现的任何工具都是不可能的。但是,您可以做的是安排一个每日cron任务,该任务将读取/sys/fs/ext4/sda1/lifetime_write_kbytes带有时间戳的数据并将其附加到文件中。稍后,您可以减去差异以查看每天写了多少。例如,此类命令的内容将是:

    30 08 * * * bash -c '{ date; cat /sys/fs/ext4/sda1/lifetime_write_kbytes; echo ;} >> /home/user/my_disk_log.txt'
    
    • 4

相关问题

  • 如何随时间记录我的 SSD 的读取性能?

  • 自 10.10 起适用于 SSD 的最佳 FS [重复]

  • 有没有办法强制特定文件仅存在于 RAM 中?

  • 如何优化 SSD 的操作系统?

  • Ubuntu 是否支持与 SSD 一起使用的 TRIM 命令?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve