也有可能只是软件设计得垃圾。我以前用 天翼云盘 和 微力同步 时碰到过。
1. 天翼云盘,在下载一个 4GB 的文件时,保存目录在 D: 盘,但 C: 盘也有 40 GB / hour ( 12 MB/s ) 的速度写入。
用 sandboxie 跟踪文件操作日志,并分析数据,发现有 170W 次文件操作:
- 4GB 的文件被分了 18W 份进行下载,每一份先下载到 C: 的临时目录
- 反反复复开事务写一个 52 KB 的数据库 66W 次(导致反复创建删除 xxx.db-journal ,估计触发了很多 NTFS 的东西)
- 读写配置文件 47W 次(看不懂。。)
- 写目标文件 1500 次
- 还有个 35W 次的,对程序目录的操作,我看不懂。。
分析命令:
```shell
$ 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
……
```
当时 sandboxie 跟踪文件日志截图:
2. 微力同步,在获取 zlibrary_cn 大概 36W 个文件的列表信息时,就要读写几百 GB 了(还没咋开始下载真正的文件内容呢)。
跟踪了下,发现只是在构建它的索引数据库 index-v0.14.0.db 。。(不知这数据库咋设计的,36W 个文件信息,就要存 15GB 。。)
当时正从其他 30 人获取文件列表信息:
任务管理器发现,这货库库读写 C: 盘: