Mετρικά στοιχεία αποθήκευσης περιεχομένου σε cache στο Mac
Τα μετρικά στοιχεία της αποθήκευσης περιεχομένου σε cache αποθηκεύονται στον ακόλουθο φάκελο:
/Βιβλιοθήκη/Application Support/Apple/AssetCache/Data
Οι μετρήσεις δεν μετακινούνται μαζί με το περιεχόμενο που είναι αποθηκευμένο σε cache. Αντ' αυτού, αποθηκεύονται πάντα σε αυτήν την τοποθεσία. Για παράδειγμα, αν μετακινήσετε την cache από:
/Library/Application Support/Apple/AssetCache/Data
στο
/Volumes/Data/Βιβλιοθήκη/Application Support/Apple/AssetCache/Data
τα μετρικά στοιχεία θα εξακολουθήσουν να βρίσκονται στη διαδρομή
/Βιβλιοθήκη/Application Support/Apple/AssetCache/Metrics
Αν η Αποθήκευση περιεχομένου σε cache έχει χρησιμοποιηθεί στο παρελθόν σε Mac, αυτός ο φάκελος περιέχει ένα αρχείο με όνομα Metrics.db και μπορεί να περιέχει ένα ή περισσότερα άλλα αρχεία με παρόμοια ονόματα. Αυτά τα αρχεία αποτελούν μια βάση δεδομένων SQLite την οποία μπορείτε να διαβάσετε.
Το μοντέλο αντικειμένου CoreData που περιγράφει τις μετρήσεις είναι διαθέσιμο ως η οντότητα «Metric» στο /usr/libexec/AssetCache/AssetCache.momd.
Σημείωση: Παρόλο που αυτή είναι μια περιγραφή του μοντέλου έκδοσης 7, η Apple μπορεί να αλλάξει αυτό το μοντέλο, ή να χρησιμοποιήσει μια βάση δεδομένων εκτός από SQLite, σε μελλοντικές εκδόσεις του macOS χωρίς πρότερη προειδοποίηση. Αυτό μπορεί να απαιτήσει ενημερώσεις στα σκριπτ που έχετε διαμορφώσει για συγκέντρωση δεδομένων αποθήκευσης περιεχομένου σε cache.
Η cache περιεχομένου:
Προσθέτει μια νέα seir;a στη βάση δεδομένων κάθε λεπτό καθώς εκτελείται
Δεν προσθέτει σειρές που περιέχουν μόνο μηδενικά όταν είναι σε αδράνεια. Απλώς παραλείπει την προσθήκη τέτοιων σειρών
Δεν τροποποιεί υπάρχουσες σειρές
Διαγράφει περιοδικά σειρές όταν είναι άνω των 30 ημερών
Συμβουλή: Μπορείτε να αλλάξετε τη χρονική περίοδο αναφοράς από 60 δευτερόλεπτα αλλάζοντας την προηγμένη ρύθμιση MetricsInterval
και μπορείτε να αλλάξετε τη μέγιστη ηλικία αποθηκευμένων σειρών από 30 ημέρες αλλάζοντας την προηγμένη ρύθμιση MetricsMaxAge
.
Κάθε σειρά στη βάση δεδομένων περιέχει τις ακόλουθες στήλες. Κάθε αντικείμενο είναι προαιρετικό εκτός από το creationDate
.
Αντικείμενο | Περιγραφή | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
bytesDropped | Όγκος δεδομένων που λήφθηκαν από την cache περιεχομένου κατά την περίοδο αναφοράς αλλά δεν ήταν δυνατό να προστεθούν στην cache. | ||||||||||
bytesFromCacheToChild | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromCacheToClient | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
bytesFromCacheToPeer | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromOriginToChild | Όγκος δεδομένων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromOriginToClient | Όγκος δεδομένων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
bytesFromOriginToPeer | Όγκος δεδομένων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromParentToChild | Όγκος δεδομένων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromParentToClient | Όγκος δεδομένων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
bytesFromParentToPeer | Όγκος δεδομένων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromPeerToChild | Όγκος δεδομένων που λήφθηκαν από ομότιμες cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
bytesFromPeerToClient | Όγκος δεδομένων που λήφθηκαν από ομότιμες cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
bytesImportedByHTTP | Όγκος δεδομένων που έλαβε η cache περιεχομένου μέσω HTTP κατά την περίοδο αναφοράς. | ||||||||||
bytesImportedByXPC | Όγκος δεδομένων που έλαβε η cache περιεχομένου μέσω XPC κατά την περίοδο αναφοράς. | ||||||||||
bytesPurgedTotal | Όγκος δεδομένων που η cache περιεχομένου εκκαθάρισε από την cache της κατά την περίοδο αναφοράς. Περιλαμβάνει την τιμή bytesPurgedYoungerThan30Days. | ||||||||||
bytesPurgedYoungerThan1Day | Όγκος δεδομένων που η cache περιεχομένου εκκαθάρισε από την cache της κατά την περίοδο αναφοράς και πρόσθεσε στην cache λιγότερο από μία ημέρα πριν. | ||||||||||
bytesPurgedYoungerThan30Days | Όγκος δεδομένων που η cache περιεχομένου εκκαθάρισε από την cache της κατά την περίοδο αναφοράς και πρόσθεσε στην cache λιγότερο από 30 ημέρες πριν. Περιλαμβάνει την τιμή bytesPurgedYoungerThan7Days. | ||||||||||
bytesPurgedYoungerThan7Days | Όγκος δεδομένων που η cache περιεχομένου εκκαθάρισε από την cache της κατά την περίοδο αναφοράς και πρόσθεσε στην cache λιγότερο από 7 ημέρες πριν. Περιλαμβάνει την τιμή bytesPurgedYoungerThan1Day. | ||||||||||
creationDate | Ημερομηνία συλλογής αυτού του αντικειμένου μέτρησης. Αυτό το στοιχείο μέτρησης περιγράφει την απόδοση της cache περιεχομένου κατά την περίοδο που λήγει στο creationDate. | ||||||||||
importsByHTTP | Αριθμός αιτημάτων ανεβάσματος που λήφθηκαν από την cache περιεχομένου μέσω HTTP κατά την περίοδο αναφοράς. | ||||||||||
importsByXPC | Αριθμός αιτημάτων ανεβάσματος που λήφθηκαν από την cache περιεχομένου μέσω XPC κατά την περίοδο αναφοράς. | ||||||||||
period | Διάρκεια, σε δευτερόλεπτα, της περιόδου αναφοράς που λήγει στο creationDate. | ||||||||||
repliesFromCacheToChild | Αριθμός απαντήσεων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromCacheToClient | Αριθμός απαντήσεων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
repliesFromCacheToPeer | Αριθμός απαντήσεων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromOriginToChild | Αριθμός απαντήσεων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromOriginToClient | Αριθμός απαντήσεων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
repliesFromOriginToPeer | Αριθμός απαντήσεων που λήφθηκαν μέσω Διαδικτύου και εξυπηρετήθηκαν από την cache περιεχομένου σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromParentToChild | Αριθμός απαντήσεων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromParentToClient | Αριθμός απαντήσεων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
repliesFromParentToPeer | Αριθμός απαντήσεων που λήφθηκαν από γονικές cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromPeerToChild | Αριθμός απαντήσεων που λήφθηκαν από ομότιμες cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
repliesFromPeerToClient | Αριθμός απαντήσεων που λήφθηκαν από ομότιμες cache περιεχομένου και εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
requestsFromChild | Αριθμός αιτημάτων λήψης που έλαβε η cache περιεχομένου από θυγατρικές cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
requestsFromClient | Αριθμός αιτημάτων λήψης που έλαβε η cache περιεχομένου από συσκευές Apple πελατών κατά την περίοδο αναφοράς. | ||||||||||
requestsFromPeer | Αριθμός αιτημάτων λήψης που έλαβε η cache περιεχομένου από ομότιμες cache περιεχομένου κατά την περίοδο αναφοράς. | ||||||||||
requestsRejectedForNoSpace | Αριθμός αιτημάτων λήψης που απέρριψε η cache περιεχομένου κατά την περίοδο αναφοράς λόγω υψηλής πίεσης cache (με κωδικό απόκρισης HTTP 503, μη διαθέσιμη υπηρεσία). |
Ομαδοποίηση αποτελεσμάτων
Μπορεί να σας φανεί χρήσιμο να ομαδοποιήσετε κάποια από τα παραπάνω στοιχεία. Ακολουθούν μερικές προτάσεις. Όλο το περιεχόμενο βασίζεται σε ακέραιους αριθμούς.
Περιεχόμενο | Ομαδοποιημένα αντικείμενα | Περιγραφή | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Ανεβασμένα byte | Άθροισμα του bytesImportedBy* | Όγκος δεδομένων που ανέβηκαν μέσω της cache περιεχομένου κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα δεδομένα από γονική | Άθροισμα του bytesFromParentTo* | Όγκος δεδομένων που έλαβε η cache περιεχομένου από οποιαδήποτε γονική cache περιεχομένου της κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα δεδομένα από ομότιμη | Άθροισμα του bytesFromPeerTo* | Όγκος δεδομένων που έλαβε η cache περιεχομένου από οποιαδήποτε ομότιμη cache περιεχομένου της κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα δεδομένα από προέλευση | Άθροισμα του bytesFromOriginTo* | Όγκος δεδομένων που έλαβε η cache περιεχομένου μέσω Διαδικτύου κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα δεδομένα από cache | Άθροισμα του bytesFromCacheTo* | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου από την cache της κατά την περίοδο αναφοράς. Όσο πιο κοντά είναι αυτή η τιμή στην τιμή «Εξυπηρετημένα δεδομένα», τόσο περισσότερο βοήθησε η cache περιεχομένου. | |||||||||
Εξυπηρετημένα δεδομένα σε ομότιμη | Άθροισμα του bytesFrom*ToPeer | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου σε οποιαδήποτε ομότιμη cache περιεχομένου της κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα byte | Συνολικός όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου κατά την περίοδο αναφοράς. Όταν αυτή η τιμή δεν είναι μηδενική, η cache περιεχομένου λειτουργεί. | Άθροισμα του bytesFrom*To* | |||||||||
Εξυπηρετημένα byte σε θυγατρική | Άθροισμα του bytesFrom*ToChild | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου σε οποιαδήποτε θυγατρική cache περιεχομένου της κατά την περίοδο αναφοράς. | |||||||||
Εξυπηρετημένα byte σε πελάτη | Άθροισμα του bytesFrom*ToClient | Όγκος δεδομένων που εξυπηρετήθηκαν από την cache περιεχομένου σε συσκευές Apple πελατών κατά την περίοδο αναφοράς. | |||||||||
Ληφθέντα byte | bytesFrom <Origin,Parent,Peer>To | Όγκος δεδομένων που έλαβε η cache περιεχομένου είτε μέσω Διαδικτύου είτε από ομότιμες ή γονικές cache κατά την περίοδο αναφοράς. |
Λήψη δεδομένων πίεσης cache
Μπορείτε να δείτε πόσο επειγόντως η cache περιεχομένου χρειάστηκε περισσότερο χώρο αποθήκευσης κατά την περίοδο αναφοράς. Η χαμηλότερη πίεση cache είναι καλύτερη.
Η Παρακολούθηση δραστηριότητας υπολογίζει την πίεση cache ως εξής:
100% όταν η τιμή requestsRejectedForNoSpace > 0
80% όταν η τιμή bytesPurgedYoungerThan1Day > 0
60% όταν η τιμή bytesPurgedYoungerThan7Days > 0
40% όταν η τιμή bytesPurgedYoungerThan30Days > 0
20% όταν η τιμή bytesPurgedTotal > 0
0% στις άλλες περιπτώσεις
Η Παρακολούθηση δραστηριότητας συγκεντρώνει επίσης τα παραπάνω στοιχεία ως εξής, π.χ. για υπολογισμό τιμών σε χρονικό διάστημα μεγαλύτερο από μία περίοδο.
Για πλήθη byte, πλήθη εισαγωγών, πλήθη αιτημάτων ή απαντήσεων, αθροίζονται για το χρονικό διάστημα.
Για την πίεση cache, υπολογίζεται η μέγιστη τιμή για το χρονικό διάστημα.
Δείγμα κώδικα για ανάγνωση της βάσης δεδομένων μετρήσεων
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
void readMetricsSinceDate(NSDate *date)
{
NSURL *modelURL = [NSURL fileURLWithPath:@"/usr/libexec/AssetCache/AssetCache.momd"];
NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
if (model == nil) {
// handle the error
}
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
NSURL *databaseURL = [NSURL fileURLWithPath:@"/Library/Application Support/Apple/AssetCache/Metrics/Metrics.db"];
NSError *storeError = nil;
NSPersistentStore *store = [coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:databaseURL options:@{ NSReadOnlyPersistentStoreOption: @YES } error:&storeError];
if (store == nil) {
// handle the error
}
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
context.persistentStoreCoordinator = coordinator;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Metric"];
request.predicate = [NSPredicate predicateWithFormat:@"%K > %@", @"creationDate", date];
request.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES] ];
NSError *fetchError = nil;
NSArray *results = [context executeFetchRequest:request error:&fetchError];
if (results == nil) {
// handle the error
}
for (NSManagedObject *result in results) {
NSNumber *bytesDropped = [result valueForKey:@"bytesDropped"];
// ...
NSNumber *requestsRejectedForNoSpace = [result valueForKey:@"requestsRejectedForNoSpace"];
// use the values
}
}