V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Lighfer
V2EX  ›  问与答

一年 88T, PVE+Btrfs+Win 到底在干嘛

  •  
  •   Lighfer · 52 天前 · 2410 次点击
    这是一个创建于 52 天前的主题,其中的信息可能已经有所发展或是发生改变。

    标题党了,到底是哪个环节出了问题还不知道

    Data Units Read:                    17,963,272 [9.19 TB]
    Data Units Written:                 174,200,818 [89.1 TB]
    

    只用了一年的固态,突然发现竟然写入了 80+T ,然后开iotop -aP观察到是btrfs-transactionkvm id 1003(win 10)在频繁写入,一天能写一两百 G ,即使是写放大也不至于这么夸张吧?

    到底发生了啥!!!从 win10 的任务管理器里看磁盘使用率又非常之低,甚至在任务管理器里有一段时间写入为 0 的时候,iotop 观察到的 kvm 进程仍然在不断写入。。

    找不到原因,干脆全盘备份重装( PVE+XFS+Win11 ),大概一小时 1G 的写入,Win11 任务管理器多数时候也就不到 100KB/s 的写入,虽然相对来说正常多了,但仍一年仍会产生 8T+的写入,似乎也不太正常?

    有没有老哥救救孩子

    26 条回复    2024-07-19 07:33:26 +08:00
    StinkyTofus
        1
    StinkyTofus  
       52 天前
    是不是 Win 的虚拟内存在读写
    Lighfer
        2
    Lighfer  
    OP
       52 天前 via Android
    @StinkyTofus 应该不会吧?给了 win 32G 内存,内存使用率都比较低,不到 50%
    StinkyTofus
        3
    StinkyTofus  
       52 天前
    @Lighfer #2 只是一种可能性, 可以测试一下
    hefish
        4
    hefish  
       52 天前
    写坏了换一块不就完了,这固态还准备传给下一代?
    Lighfer
        5
    Lighfer  
    OP
       52 天前
    @hefish 写是写不坏的,但是遇到问题也要尽量去解决啊
    TellMeWHY
        6
    TellMeWHY  
       52 天前
    1.禁用 WIN 虚拟内存
    2.使用 Primo Ramdisk 这类的内存盘软件将 WIN 所有临时读写目录迁移到特定内存盘(我一般给 16G ,可配置闲时自动将内存额度共享给其它软件)
    3.若内存足够大譬如 128G 或 256G 以上,就将浏览器缓存、临时下载、对外共享、SMB 读写甚至 WWW 目录都往特定的内存盘扔,大部份内存盘软件都有回写功能,我喜欢用开机脚本自动+延迟+XCOPY 硬盘特定目录到内存盘,微调也方便
    4.所有虚拟机都能使用同一个内存盘来做缓存,或者干脆将虚拟机放内存盘再启动
    Lighfer
        7
    Lighfer  
    OP
       52 天前
    @StinkyTofus 我关虚拟内存一段时间看看,谢谢老哥
    Lighfer
        8
    Lighfer  
    OP
       52 天前
    @TellMeWHY 谢谢老哥,我照着试一下!
    Radeon
        9
    Radeon  
       52 天前
    Windows 在 idle 状态的磁盘写入量确实是非常大,几乎一刻不停。我目前的对策是 PVE 的 ext4 磁盘加上 commit=600 参数,每 10 分钟才 commit 一次,可以大幅降低实际的 disk write IO 。Btrfs 的对应参数我不清楚,你可以去 dig 一下
    THESDZ
        10
    THESDZ  
       52 天前
    @Radeon #9 这个参数怎么加的?有关键词吗?搜 commit 都找不到
    chenbin36255
        11
    chenbin36255  
       52 天前
    写坏了换一块就完了
    leeyuzhe
        12
    leeyuzhe  
       52 天前
    借楼问一句,这个读写总量怎么打印出来的?
    busier
        13
    busier  
       52 天前 via iPhone
    Win10 企业版/教育版/ioT 版本可以用 UWF 防硬盘写入,我的方案是做 C 盘防写入,需要保存和修改的数据放其他盘。
    缺点是 UWF 内存开销大。
    Radeon
        14
    Radeon  
       52 天前
    @THESDZ 写在/etc/fstab 里,例如

    UUID=xxx-xxxx-xxx-xxx / ext4 defaults,noatime,commit=600 1 1
    Radeon
        15
    Radeon  
       52 天前
    patrickyoung
        16
    patrickyoung  
       52 天前 via Android
    为啥底层要 btrfs...个人觉得没啥必要…
    然后 vm id 1003 这机器你用的什么存储? file-based qcow2 么?
    Radeon
        17
    Radeon  
       52 天前
    @leeyuzhe

    smartctl -a /dev/nvme0

    这是列出第一个 nvme SSD 设备的统计信息,你可以根据你的情况替换设备路径
    qping
        18
    qping  
       52 天前
    @leeyuzhe 固态的 SMART 吧
    qping
        19
    qping  
       52 天前
    看了下我的 11 个月写入了 11T ,不知道多还是少
    busier
        20
    busier  
       52 天前
    @leeyuzhe
    @Radeon

    nvme 应该可以考虑用 nvme-cli

    安装:
    apt-get --yes install nvme-cli

    使用:
    nvme smart-log /dev/nvme0

    输出示例:
    critical_warning : 0
    temperature : 48°C (321 Kelvin)
    available_spare : 100%
    available_spare_threshold : 10%
    percentage_used : 0%
    endurance group critical warning summary: 0
    Data Units Read : 37,002,774 (18.95 TB)
    Data Units Written : 14,814,002 (7.58 TB)
    host_read_commands : 99,540,873
    host_write_commands : 41,289,647
    controller_busy_time : 385
    power_cycles : 108
    power_on_hours : 5,497
    unsafe_shutdowns : 13
    media_errors : 0
    num_err_log_entries : 0
    Warning Temperature Time : 0
    Critical Composite Temperature Time : 0
    Temperature Sensor 1 : 48°C (321 Kelvin)
    Temperature Sensor 2 : 62°C (335 Kelvin)
    Thermal Management T1 Trans Count : 162
    Thermal Management T2 Trans Count : 0
    Thermal Management T1 Total Time : 228
    Thermal Management T2 Total Time : 0
    Lighfer
        21
    Lighfer  
    OP
       52 天前
    @Radeon 亏了,重装前我应该先试试你这个的,至少应该可以大幅降低写放大的问题
    Lighfer
        22
    Lighfer  
    OP
       52 天前
    @patrickyoung 对哈,qcow2 ,用 btrfs 搞快照+备份好用
    Lighfer
        23
    Lighfer  
    OP
       52 天前
    @qping 如果只是日常使用的话,我感觉还是多了,等于平均每个小时写入 1.4G 多,不过已经在能接受范围内了,我的固态 1400TBW ,即使是我这种一年 88T 的,都能用 16 年
    Lighfer
        24
    Lighfer  
    OP
       52 天前   ❤️ 1
    @Lighfer typo:1200TBW ,14 年
    ptsa
        25
    ptsa  
       52 天前
    21 年 10 月买的 nvme smart 值
    Data Units Read: 79,119,222 [40.5 TB]
    Data Units Written: 227,556,664 [116 TB]
    patrickyoung
        26
    patrickyoung  
       50 天前 via Android
    @Lighfer #21 那这个写入量正常。换 lvm 就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:21 · PVG 07:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.