Qual è l'uso di snapshot.db?


16

Dopo aver installato Mavericks, ho scoperto il file snapshot.db(1,5 GB) in:

/var/db/systemstats/snapshots.db

A che serve quel file? È sicuro cancellarlo?


Ho lo stesso problema. 1,5 GB di file snapshot.db. 27 "iMac Core i7 con Mavericks. Ho inviato il mio" feedback "ad Apple. L'ho segnalato come bug.

Nel caso in cui non si desideri eliminarlo, c'è una discussione per ridurre le dimensioni in questa discussione (grazie @sayzlim)
nohillside

Puoi eliminarlo dopo aver interrotto il servizio come spiegato qui .
Kenorb,

Risposte:


13

A un livello elevato, il file che hai elencato è un file di database binario utilizzato dal sistema operativo per tenere traccia del consumo energetico, delle prestazioni e dei dati di sospensione / riattivazione nel tempo. Nonostante la guida generale per non cancellare nulla da / var / db, questo sembra non causare danni indebiti se si dovesse cancellare quel file in determinate occasioni.

Ciò alimenta le nuove visualizzazioni del consumo di energia e forse potrebbe aiutare con la diagnostica in caso di problemi e chiedere ad Apple di aiutare a diagnosticare il sistema.

Il programma che scrive su quel file (così come i file associati in / var / db / systemstats) è systemstatsd .

È possibile utilizzare il comando --stelp di systemstats per ottenere maggiori dettagli e leggere da quel file se si è curiosi. La pagina di manuale a cui mi sono collegato è la shell di una pagina di manuale e il codice è per lo più non documentato da Apple oltre alla documentazione integrata nello strumento e accessibile dal chiamarlo con l'opzione di aiuto.

Generalmente non è sicuro eliminare nulla in / var / db poiché il sistema potrebbe dipendere dal fatto che i file siano coerenti, ma ho provato a rimuovere tutto il contenuto di quella directory avviando in modalità Utente singolo e il sistema sembra ricreare le cose correttamente e gestirle qualsiasi tentativo di ripulire manualmente questi file.

Non consiglierei di eliminare nulla dai sistemi su un Mac che non si è pronti a cancellare e reinstallare e si potrebbe anche ottenere informazioni dispari da Activity Monitor se si riesce a ottenere il database e i file di registro in uno stato incoerente. Detto questo, sembra che il sistema sia stato programmato in modo difensivo per gestire le cose che mancano da quella directory e non causare operazioni irregolari in generale se lo fai comunque.


5

Ho presentato una segnalazione di bug con apple per lo stesso problema. Hanno risposto che snapshot.db ha lo scopo di conservare i dati negli ultimi 3 giorni e raggiungere 70-150 MB sulla maggior parte dei sistemi. Tuttavia, sul mio (OS X 10.9, iMac 27 pollici 2,8 GHz i7, 8 GB RAM) l'attuale file snapshot.db ha ora raggiunto 2,12 GB ed è ancora in crescita. Finora nessun aiuto ulteriore da parte di Apple: apparentemente non riescono a riprodurre il comportamento.

È possibile eliminare manualmente il file, cosa che ho fatto dopo che il mio primo ha raggiunto 1,76 GB. È inoltre possibile sostituirlo con un file snapshot.db immutabile di sistema vuoto, che impedisce al sistema di scrivere su di esso, anche se ogni pochi minuti vengono visualizzati i messaggi della console "asserzione non riuscita".

Non ho alcun reale utilizzo per questo file; 70-150 MB andrebbero bene, ma lo spazio su disco che consuma sul mio sistema è inaccettabile.

Ti consiglio di presentare anche una segnalazione di bug con apple.


Farò lo stesso ed eliminerò il file per vedere quanto sarà grande la dimensione del file che verrà riprodotta. Spero che il file riprodotto sia di circa 250 MB da quando ho aggiornato invece di installare pulito da Lion.
sayzlim,

1
Se vuoi fare una domanda successiva su come scaricare o riassumere il contenuto del file, potrebbe aiutarti, @sayzlim e altri con cartelle> 1 GB a sapere cosa viene archiviato.
bmike

3

In alternativa, è possibile disabilitare il launchdaemon che genera queste istantanee e scrive su quel file. L'ho fatto sul mio rMBP con Mavericks dato che la console era invasa da registri "powerstats". Dopo aver eseguito il comando seguente, sia il registro della console riporta sia la crescita del file a cui si fa riferimento sono cessate.

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

3

Il systemstatsddemone raccoglie una selezione di statistiche di sistema sull'utilizzo dell'alimentazione del sistema e di solito viene eseguito inosservato in background. Quindi in generale, non c'è nulla di cui preoccuparsi.

Se il file del database diventa troppo grande ( snapshots.db), può essere svuotato quando si interrompe / scarica il servizio come da questo post :

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

quindi svuota il file:

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

2

Posso confermare che in esecuzione

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

comprime il database verso il basso. Il mio è passato da 530 MB a 74 MB, conformando altri post qui. Pertanto, la garbage collection o il danno da scrittura su questo database è probabilmente un colpevole. Mi azzarderei a supporre che il presupposto più probabile sia su una cattiva scrittura, dal momento che il mio CCC non è riuscito a sovrascriverlo (né posso copiarlo in un'altra directory)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.