Quelle est l'utilisation de snapshot.db?

16

Après avoir installé Mavericks, j'ai découvert snapshot.dbun fichier (1,5 Go) dans:

/var/db/systemstats/snapshots.db

Quelle est l'utilité de ce fichier? Est-il sûr de le supprimer?

sayzlim
la source
J'ai le même problème. Fichier snapshot.db de 1,5 Go. 27 "iMac Core i7 avec Mavericks. J'ai envoyé mes" commentaires "à Apple. Je l'ai signalé comme un bug.
Juste au cas où vous ne voudriez pas le supprimer, il y a une discussion pour réduire la taille dans cette discussion (merci @sayzlim)
nohillside
Vous pouvez le supprimer après avoir arrêté le service comme expliqué ici .
kenorb

Réponses:

13

À un niveau élevé, le fichier que vous avez répertorié est un fichier de base de données binaire utilisé par le système d'exploitation pour suivre la consommation d'énergie, les performances et les données de veille / veille au fil du temps. Malgré les instructions générales pour ne rien supprimer de / var / db, cela ne semble pas causer de préjudice indu si vous supprimez ce fichier à l'occasion.

Cela alimente les nouvelles vues de la consommation d'énergie et pourrait peut-être aider avec les diagnostics si vous avez des problèmes sur la ligne et demander à Apple d'aider à diagnostiquer le système.

Le programme qui écrit dans ce fichier (ainsi que les fichiers associés dans / var / db / systemstats) est systemstatsd .

Vous pouvez utiliser la commande systemstats --help pour obtenir plus de détails et lire ce fichier si vous êtes curieux. La page de manuel à laquelle j'ai lié est le shell d'une page de manuel et le code est principalement non documenté par Apple, à l'exception de la documentation intégrée à l'outil et accessible depuis l'appel avec l'option d'aide.

Il n'est généralement pas sûr de supprimer quoi que ce soit dans / var / db car le système peut dépendre de la cohérence des fichiers, mais j'ai testé la suppression de tout le contenu de ce répertoire en démarrant en mode mono-utilisateur et le système semble recréer les choses correctement et gérer toute tentative de nettoyage manuel de ces fichiers.

Je ne recommanderais pas de supprimer quoi que ce soit des sytemstats sur un Mac que vous n'êtes pas prêt à effacer et réinstaller et vous pourriez également obtenir des informations étranges du moniteur d'activité si vous parvenez à obtenir la base de données et les fichiers journaux dans un état incohérent. Cela étant dit, il semble que le système ait été programmé de manière défensive pour gérer les éléments manquants dans ce répertoire et ne pas provoquer un fonctionnement erratique en général si vous le faites de toute façon.

bmike
la source
5

J'ai déposé un rapport de bogue avec apple pour le même problème. Ils ont répondu que snapshots.db est destiné à contenir des données pour les 3 derniers jours et atteindre 70-150 Mo sur la plupart des systèmes. Cependant, sur le mien (OS X 10.9, iMac 27 pouces 2,8 GHz i7, 8 Go de RAM), le fichier snapshots.db actuel a maintenant atteint 2,12 Go et continue de croître. Aucune aide supplémentaire de la pomme jusqu'à présent - ils ne peuvent apparemment pas reproduire le comportement.

Il est possible de supprimer manuellement le fichier, ce que j'ai fait après que mon premier ait atteint 1,76 Go. Vous pouvez également le remplacer par un fichier snapshots.db immuable du système vide, ce qui empêche le système d'écrire dessus, bien que vous obteniez ensuite des messages de console «Échec de l'assertion» toutes les quelques minutes.

Je n'ai aucune utilité réelle pour ce fichier; 70-150 Mo serait bien, mais l'espace disque qu'il consomme sur mon système est inacceptable.

Je vous recommande également de déposer un rapport de bogue avec apple.

DBM
la source
Je vais faire de même et supprimer le fichier pour voir la taille du fichier qu'il reproduira. J'espère que le fichier reproduit fera environ 250 Mo depuis que j'ai mis à niveau au lieu d'une nouvelle installation depuis Lion.
sayzlim
1
Si vous souhaitez poser une question de suivi sur la façon de vider ou de résumer le contenu du fichier, cela pourrait vous aider, @sayzlim et d'autres avec des dossiers> 1 Go, à savoir ce qui est stocké.
bmike
3

Alternativement, vous pouvez désactiver le launchdaemon qui génère ces instantanés et écrit dans ce fichier. Je l'ai fait sur mon rMBP exécutant Mavericks depuis que la console était inondée de journaux "powerstats". Après avoir exécuté la commande suivante, les rapports de journal de la console et la croissance du fichier auquel vous faites référence ont cessé.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist 
njboot
la source
3

Le systemstatsddémon collecte une sélection de statistiques système sur la consommation d'énergie du système et s'exécute généralement en arrière-plan. Donc, en général, il n'y a rien à craindre.

Si le fichier de base de données devient trop volumineux ( snapshots.db), il peut être vidé lorsque vous arrêtez / déchargez le service selon ce post :

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

puis rincez le fichier en:

sudo sh -c ">/private/var/db/systemstats/snapshots.db"
kenorb
la source
2

Je peux confirmer que courir

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

compressera la base de données. Le mien est passé de 530 Mo à 74 Mo, ce qui est conforme à d'autres publications ici. Ainsi, la collecte des ordures ou les dommages d'écriture sur cette base de données sont probablement un coupable. Je me risquerais à supposer que l'hypothèse la plus probable est sur une mauvaise écriture, car mon CCC ne pouvait pas l'écrire (ni le copier dans un autre répertoire)

Jérôme
la source