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

164 天前
 Lighfer

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

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+的写入,似乎也不太正常?

有没有老哥救救孩子

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

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

smartctl -a /dev/nvme0

这是列出第一个 nvme SSD 设备的统计信息,你可以根据你的情况替换设备路径
qping
164 天前
@leeyuzhe 固态的 SMART 吧
qping
164 天前
看了下我的 11 个月写入了 11T ,不知道多还是少
busier
164 天前
@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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1057884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX