Apple - What is the use of snapshot.db?

At a high level, the file you listed is a binary database file used by the OS to track power usage, performance and sleep/wake data over time. Despite the general guidance to not delete anything from /var/db this appears to not cause undue harm if you were to delete that one file on occasion.

This feeds the new views of energy usage and perhaps might help with diagnostics if you have problems down the line and ask Apple to help diagnose the system.

The program that writes to that file (as well as associated files in /var/db/systemstats ) is systemstatsd.

You can use the systemstats --help command to get more details and read from that file if you are curious. The manual page I linked to is the shell of a manual page and the code is mostly undocumented by Apple other than the documentation that is build into the tool and accessible from calling it with the help option.

It's generally not safe to delete anything in /var/db since the system could depend on the files being coherent, but I've tested removing all contents of that directory by booting into Single User mode and the system seems to recreate things properly and handle any attempts to manually clean up these files.

I wouldn't recommend deleting anything from sytemstats on a Mac you are not ready to erase and reinstall and you also might get odd information from Activity Monitor if you manage to get the database and log files in an inconsistent state. That being said, it looks like the system was programmed defensively to handle things going missing from that directory and not cause erratic operation in general if you do so anyhow.


I filed a bug report with apple for the same issue. They responded that snapshots.db is intended to hold data for the last 3 days and reach 70-150 MB on most systems. However, on mine (OS X 10.9, iMac 27-inch 2.8 GHz i7, 8 GB RAM) the current snapshots.db file has now reached 2.12 GB and is still growing. No further help from apple so far - they apparently cannot reproduce the behavior.

It is possible to manually delete the file, which I did after my first one reached 1.76 GB. You can also replace it with an empty system immutable snapshots.db file, which prevents the system from writing to it, although you then get 'assertion failed' console messages every few minutes.

I have no real use for this file; 70-150 MB would be fine, but the disk space it consumes on my system is unacceptable.

I recommend you file a bug report with apple as well.


Alternatively, you could disable the launchdaemon that spawns these snapshots and writes to that file. I did this on my rMBP running Mavericks since the console was flooded with "powerstats" logs. After I ran the following command, both the console log reports and the growth of the file you refer to ceased.

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

Tags:

Macos