标题: 为啥天翼云盘要以 30 GB/hour 的速度往 C 盘写东西?(保存目录在 D 盘)
时间: 2022-12-20
起因:任务管理器显示,天翼云盘以高于网络的速度,往硬盘写东西
到性能页一看,C 盘正以 10 MB/s 左右的速度被写东西。然而,我的数据保存目录在 D 盘啊。。
打开资源监视器,发现天翼云盘在实时往 C 盘写数据库和 C:\$LogFile。。
打开天翼云盘的数据目录,发现增删文件很频繁。。(下图是 GIF 动画)
为啥这些下载软件,都这么吃(看起来没必要浪费的)资源呢?
『回复列表(16|隐藏机器人聊天)』
@卷心菜,@天蓝,感觉你们可能是对的,天翼云盘应该有分段下载
SandBoxie
来拦截文件操作,并分析日志我最近发现,新版的 SandBoxie-Plus
支持跟踪沙盘内程序的文件操作,也能导出日志(图附在文末)。
我拦截了天翼云盘对 C 盘的操作,花了 13 分钟下载了一个 4 GB 的文件,然后分析了日志。
C:
盘不相干的)文件?!下列 Shell
命令分析了操作次数最多的文件列表(只列出至少操作了 2 次的):
$ awk -F$'\t' -v OFS=$'\t' '$5 ~ /^File/{arr[$7]++} END{for (k in arr) if (arr[k] > 1) print arr[k], k}' sandboxie.log | sort -rn
666140 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\transManNew_###########@189.cn.db-journal
470862 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\setting.xml
353936 \Device\HarddiskVolume3\Program Files (x86)\ecloud
1544 \Device\HarddiskVolume9\??????\????????\????????.part11.rar
23 \Device\HarddiskVolume3\Program Files (x86)\ecloud\Config\ecloud\transfercfg.xml
22 \Device\HarddiskVolume3\Program Files (x86)\ecloud\eCloud.exe
18 \Device\HarddiskVolume3\WINDOWS\System32\drivers\etc\hosts
11 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\setting.xml.tmp
11 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud
6 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\LogFileTransfer_###########@189.cn.db-journal
4 \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\userinfo.xml
2 \Device\HarddiskVolume9\??????\????????\????????.part11.rar.ecdl
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_ZNx3dAAodr46ERcahHyp
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_z84dXqNPNdgIWChWt1PM
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_Z2RJUJnPusih593Oxc9F
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_ylQaBzpTKmd9O7nXb447
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_XaAabe9g3PxVgRtbBPff
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_X2XEpRBBSfbNoRlXyCSa
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_VW5XBHbCfAMSHQboxLR0
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_uSrTPYjHvBhmRWHVahW7
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_OoWej1Tem5f3eyFM0xyO
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_l4KBl48XABfJGdxQLHQJ
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_hwMfgrAxJ1ifutFS7Zs7
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_gwQmbdE13cTjIEocCywc
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_fycm3JVGoHpIcdEheQjT
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_FFAoGqQPa3edwBPR7Aoq
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_FeRyO8ovcavG2oT4xNoB
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_e6hlUdnjH9pECYPs60um
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_dEAgSch6p3LebI8qNb4z
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_CaGkTSpdXxTc9IGUmn5W
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_bzsMzCbnGelcuBGfSdZ4
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_a4mcJBcNVIdv4QIAHp0Z
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_8Md9F6uef9YdfbLvtPR6
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_80hINpkIcbPTFAqMKBqc
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_3TdEJaFs7Beu13hhHD3q
2 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_1ZeoSTTO9YqtVTjmAAWg
临时目录里,约有 18W 个诸如 \Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_xxx
这样的临时文件:
$ awk -F$'\t' '$5 ~ /^File/' sandboxie.log | grep -F '\Device\HarddiskVolume3\Users\wuxun\AppData\Local\Temp\etilqs_' | wc -l
176974
SandBoxie-Plus
跟踪日志图:
@无名啊,$LogFile
不是真实的文件,它是NTFS意外断电恢复日志。读写它的操作由NTFS驱动程序自动完成,应用程序无法控制。在对文件系统进行结构更改(创建文件、删除文件、文件大小变更)时,会伴随$LogFile
的读写。只改变文件的内容不改变大小通常不需要读写它。
https://www.dgxue.com/huifu/203.html
至于.db-journal,它是写入SQLite数据库(.db文件)时产生的回滚日志,也用于意外断电的数据恢复。它由SQLite数据库引擎自动产生,应用程序可以把它设为不自动删除,这样会减少重新创建文件的开销(对$LogFile
的读写也会减少)。
https://blog.csdn.net/mozart_cai/article/details/26815339
总的来说,应用程序只是在读写自己的SQLite数据库,但是因为该数据库默认每次写入都自动创建删除.db-journal文件,所以在NTFS的$LogFile
日志上产生了意料之外的写入开销。这可以认为是日志文件系统的写入放大效应。
@老虎会游泳,我把这 13 分钟内,沙箱的日志整理了下(只留下对文件的操作,省略注册表等。抹掉了账号信息)
老虎若是愿意瞅瞅,可以下载:sandboxie.log.xz(4.89 MB)(解压完 200 MB 左右)
预览:
07:58:12.051 eCloud.exe 14012 16280 File (U) Open (2) \Device\HarddiskVolume9\??????\????????\????????.part11.rar.ecdl
07:58:12.051 eCloud.exe 14012 16280 File (U) (2) \Device\HarddiskVolume3\Program Files (x86)\ecloud\Config\ecloud\transfercfg.xml
07:58:12.051 eCloud.exe 14012 16280 File (U) (2) \Device\HarddiskVolume3\Program Files (x86)\ecloud\eCloud.exe
07:58:12.051 eCloud.exe 14012 16280 File (U) (2) \Device\HarddiskVolume3\Program Files (x86)\ecloud\Config\ecloud\transfercfg.xml
07:58:12.066 eCloud.exe 14012 16280 File (U) \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud
07:58:12.066 eCloud.exe 14012 16280 File (U) \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\setting.xml.tmp
07:58:12.066 eCloud.exe 14012 16280 File (U) \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\setting.xml
07:58:12.129 eCloud.exe 14012 16280 File (U) (2) \Device\HarddiskVolume3\Program Files (x86)\ecloud\Config\ecloud\transfercfg.xml
07:58:12.129 eCloud.exe 14012 16280 File (U) (2) \Device\HarddiskVolume3\Users\wuxun\AppData\Roaming\ecloud\setting.xml
07:58:12.129 eCloud.exe 14012 16280 File (U) \Device\HarddiskVolume3\WINDOWS\System32\drivers\etc\hosts