背景
自从iPhone推出电池电量消耗统计功能以来,我总发现无论如何设置,总是有一项叫做音乐
的后台活动在疯狂消耗电量,基本上在我睡觉时,每个小时都会消耗掉8%~10%的电量,我心想我从来也没有开过Apple Music啊,这电量消耗是哪里来的?
分析与探索
直到某一天我突然意识到一个问题,我的手机配置了每天在WIFI下通过自动通过iMazing
进行备份。而iMazing
使用的是历史上成为iTunes
的工具进行备份的,而iTunes
即音乐
应用的前身。所以闹了半天其实这个莫名其妙的耗电与音乐播放毫不相关,而是对应于数据备份!
那为什么我每天其实也没有做什么,一部256G的iPhone 8,总共备份数据量也就70多G,每天修改量也就不超过2个G,但是每天备份总是要花好几个小时呢?
我管查了下备份的文件以及网络。网络用的是802.11ac,物理速率能到866mbps,备份时观察也就用了不到5mbps,大概率和网络没有关系。那备份的文件呢? 仔细一看,备份的目录中存在海量的小文件(<4KB),通过活动监视器发现,备份时磁盘IO次数大概是50~100左右。看了看我备份用的是一个4T的USB3.0东芝机械硬盘,到这里我基本上心里就有数了。
我这块5400转的磁盘,理论寻道时间是11ms,所以基本上随机IO数量的量级也就是顶天百这个级别,加上备份时又读又写,性能会更差。这是导致每天备份好几个小时的根本原因。
解决
找到原因后就好办了。果断替换上三星T5 500G SSD,重新进行备份。首次备份时间从原来的十几个小时减少到不到50分钟。观察IOPS,读取写入最高能到5000左右,实现了数量级的飞跃。而通过网络传输数据的速度也到了40~50MB/s,基本上可以媲美通过USB2.0的速度了。
而每天的增量备份更是加快了速度,根据每天的数据量,实际观察整体在10~30分钟左右。这显著降低了iPhone的耗电量。之前iPhone 8每天早起基本上掉一半电,现在也就掉15%左右,改善非常显著。
后记
随着高性能SSD的出现,时代真的是变了。单个机械磁盘慢慢真的只能变成仓库盘了,或者在做顺序读写操作的场景下使用。而针对随机读写操作频繁的备份,选购一块成本合适的SSD真的成为了最佳选择。后续SSD再降价的话,我真的考虑TimeMachine也全部搬到SSD上了。