snapshot.db的用途是什么?


16

安装Mavericks之后,我在以下位置发现了snapshot.db(1.5 GB)文件:

/var/db/systemstats/snapshots.db

该文件的用途是什么?删除它安全吗?


我也有同样的问题。1.5 GB的snapshot.db文件。27"的iMac酷睿i7与小牛我送我的‘反馈’到苹果我报告说,它作为一个bug。

万一您不想删除它,可以进行讨论以缩小讨论范围(感谢@sayzlim)
nohillside

您可以按照此处所述在停止服务后将其删除。
kenorb 2015年

Answers:


13

在较高的级别上,您列出的文件是操作系统使用的二进制数据库文件,用于跟踪一段时间内的电源使用情况,性能和睡眠/唤醒数据。尽管有一般指导原则,不要从/ var / db中删除任何文件,但这似乎并不会造成不必要的损害,如果您偶尔要删除该文件。

这为能源使用提供了新的观点,如果您在生产过程中遇到问题并请Apple帮助诊断系统,则可能有助于诊断。

写入该文件(以及/ var / db / systemstats中的关联文件)的程序是systemstatsd

您可以使用systemstats --help命令来获取更多详细信息,如果有兴趣的话可以从该文件中读取。我链接到的手册页是手册页的外壳,除了该工具内置的文档以及可通过使用help选项调用它的文档外,Apple大多未记录代码。

通常删除/ var / db中的内容并不安全,因为系统可能取决于文件的一致性,但是我已经测试过通过引导至单用户模式删除该目录的所有内容,并且系统似乎可以正确地重新创建内容并处理手动清除这些文件的任何尝试。

我不建议您从Mac上的sytemstats中删除任何内容,如果您尚未准备好擦除并重新安装它们,并且如果设法使数据库和日志文件处于不一致的状态,则还可能会从Activity Monitor中获得奇怪的信息。话虽如此,看来系统已进行了防御性编程,以处理该目录中丢失的内容,并且无论如何也不会造成一般的错误操作。


5

我针对同一问题向苹果提交了错误报告。他们回答说,snapshots.db用于保存最近3天的数据,并且在大多数系统上达到70-150 MB。但是,在我的操作系统(OS X 10.9,iMac 27英寸2.8 GHz i7、8 GB RAM)上,当前的snapshots.db文件现在已达到2.12 GB,并且仍在增长。到目前为止,苹果没有进一步的帮助-它们显然无法重现该行为。

可以手动删除文件,这是我第一个文件达到1.76 GB后执行的操作。您还可以将其替换为空的系统不可变的snapshots.db文件,该文件可防止系统写入该文件,尽管每隔几分钟您会收到“断言失败”控制台消息。

我没有这个文件的实际用途;70-150 MB可以,但是它在我的系统上占用的磁盘空间是不可接受的。

我建议您也向苹果提交错误报告。


我将执行相同的操作,并删除文件,以查看它将重现的文件大小。希望自从我升级以来,复制的文件将约为250 MB,而不是从Lion开始进行全新安装。
sayzlim

1
如果您想问有关如何转储或汇总文件内容的后续问题,它可能会帮助您@sayzlim和其他文件夹大于1 GB的人知道要存储的内容。
bmike

3

另外,您可以禁用生成这些快照并写入该文件的启动守护程序。我在运行Mavericks的rMBP上执行了此操作,因为控制台上充斥着“ powerstats”日志。运行以下命令后,控制台日志报告和您所引用文件的增长都停止了。

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist 

3

systemstatsd守护程序收集有关系统电源使用情况的系统统计信息的选择,并且它通常在后台不被注意运行。因此,一般而言,没有什么可担心的。

如果数据库文件变得太大(snapshots.db),它可以当你停止/卸载该服务按照这个被清空

sudo launchctl stop com.apple.systemstatsd
sudo launchctl stop com.apple.systemstatsd.analysis

然后通过以下方式刷新文件:

sudo sh -c ">/private/var/db/systemstats/snapshots.db"

2

我可以确认跑步

sudo sqlite3 /private/var/db/systemstats/snapshots.db "vacuum;"

将压缩数据库。我的从530MB增加到74MB,与此处的其他帖子一致。因此,此数据库上的垃圾回收或写入损坏可能是罪魁祸首。我敢说更可能的假设是写错了,因为我的CCC无法将其覆盖(也无法将其复制到另一个目录)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.