Metriche della cache dei contenuti sul Mac

La cache dei contenuti archivia le metriche nella seguente cartella:

/Library/Application Support/Apple/AssetCache/Metrics.

Le metriche non si spostano con il contenuto della cache, ma vengono sempre archiviate in questa posizione. Ad esempio, se sposti la cache da:

/Library/Application Support/Apple/AssetCache/Data

a

/Volumes/Data/Library/Application Support/Apple/AssetCache/Data

le metriche vengono comunque archiviate in

/Library/Application Support/Apple/AssetCache/Metrics

Se la cache dei contenuti è stata utilizzata almeno una volta su un Mac, questa cartella contiene un file chiamato Metrics.db e può contenere altri file con nomi simili. Questi file costituiscono un database SQLite che puoi leggere.

Il modello di oggetto CoreData che descrive le metriche è disponibile come entità “Metric” in /usr/libexec/AssetCache/AssetCache.momd.

Nota: sebbene si tratti di una descrizione della versione 7 del modello, Apple potrebbe cambiare tale modello o usare un database diverso da SQLite nelle future versioni di macOS senza preavviso. Ciò potrebbe richiedere aggiornamenti a qualsiasi script che hai configurato per aggregare i dati della cache dei contenuti.

Cache dei contenuti:

  • Aggiunge una nuova riga al database ogni minuto durante l’esecuzione.

  • Non aggiunge le righe “tutti zero” quando non è attivo; semplicemente salta l’aggiunta di tali righe.

  • Non modifica le righe esistenti.

  • Elimina periodicamente le righe più vecchie di 30 giorni.

Suggerimento: puoi modificare il periodo del resoconto e utilizzarne uno diverso da 60 secondi modificando l’impostazione avanzata MetricsInterval e puoi modificare l’antichità massima delle righe archiviate e utilizzarne una diversa da 30 giorni modificando l’impostazione avanzata MetricsMaxAge.

Ogni riga del database contiene le seguenti colonne. Ogni oggetto è opzionale eccetto creationDate.

Oggetto

Descrizione

bytesDropped

Quantità di dati che la cache dei contenuti ha scaricato durante il periodo mostrato nel grafico senza poterli aggiungere alla sua cache.

bytesFromCacheToChild

Quantità di dati che la cache dei contenuti ha fornito dalla sua cache alle cache di contenuti figlio durante il periodo mostrato nel grafico.

bytesFromCacheToClient

Quantità di dati che la cache dei contenuti ha fornito dalla sua cache ai dispositivi client Apple durante il periodo mostrato nel grafico.

bytesFromCacheToPeer

Quantità di dati che la cache dei contenuti ha fornito dalla sua cache alle cache di contenuti peer durante il periodo mostrato nel grafico.

bytesFromOriginToChild

Quantità di dati che la cache dei contenuti ha scaricato tramite internet e fornito alle cache di contenuti figlio durante il periodo mostrato nel grafico.

bytesFromOriginToClient

Quantità di dati che la cache dei contenuti ha scaricato tramite internet e fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

bytesFromOriginToPeer

Quantità di dati che la cache dei contenuti ha scaricato tramite internet e fornito alle cache di contenuti peer durante il periodo mostrato nel grafico.

bytesFromParentToChild

Quantità di dati che la cache dei contenuti ha scaricato dalle cache padre e fornito alle cache dei contenuti figlio durante il periodo mostrato nel grafico.

bytesFromParentToClient

Quantità di dati che la cache dei contenuti ha scaricato dalle cache padre e fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

bytesFromParentToPeer

Quantità di dati che la cache dei contenuti ha scaricato dalle cache di contenuti padre e fornito alle cache di contenuti peer durante il periodo mostrato nel grafico.

bytesFromPeerToChild

Quantità di dati che la cache dei contenuti ha ricevuto dalle cache di contenuti peer e fornito alle cache di contenuti figlio durante il periodo mostrato nel grafico.

bytesFromPeerToClient

Quantità di dati che la cache dei contenuti ha ricevuto dalle cache di contenuti peer e fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

bytesImportedByHTTP

Quantità di dati che la cache dei contenuti ha ricevuto tramite HTTP durante il periodo mostrato nel grafico.

bytesImportedByXPC

Quantità di dati che la cache dei contenuti ha ricevuto tramite XPC durante il periodo mostrato nel grafico.

bytesPurgedTotal

Quantità di dati che la cache dei contenuti ha eliminato dalla cache durante il periodo mostrato nel grafico. Include bytesPurgedYoungerThan30Days.

bytesPurgedYoungerThan1Day

Quantità di dati che la cache dei contenuti ha eliminato dalla cache durante il periodo mostrato nel grafico, che ha aggiunto alla cache da meno di un giorno.

bytesPurgedYoungerThan30Days

Quantità di dati che la cache dei contenuti ha eliminato dalla cache durante il periodo mostrato nel grafico, che ha aggiunto alla cache da meno di 30 giorni. Include bytesPurgedYoungerThan7Days.

bytesPurgedYoungerThan7Days

Quantità di dati che la cache dei contenuti ha eliminato dalla cache durante il periodo mostrato nel grafico, che ha aggiunto alla cache da meno di sette giorni. Include bytesPurgedYoungerThan1Day.

creationDate

Data in cui questo oggetto della metrica è stato raccolto Questo elemento della metrica descrive la performance della cache dei contenuti durante il periodo che termina in corrispondenza di creationDate.

importsByHTTP

Numero di richieste di caricamento che la cache dei contenuti ha ricevuto tramite HTTP durante il periodo mostrato nel grafico.

importsByXPC

Numero di richieste di caricamento che la cache dei contenuti ha ricevuto tramite XPC durante il periodo mostrato nel grafico.

period

Durata, in secondi, del periodo mostrato nel grafico che termina in corrispondenza di creationDate.

repliesFromCacheToChild

Numero di risposte che la cache dei contenuti ha fornito dalla sua cache alle cache di contenuti figlio durante il periodo mostrato nel grafico.

repliesFromCacheToClient

Numero di risposte che la cache dei contenuti ha fornito dalla sua cache ai dispositivi client Apple durante il periodo mostrato nel grafico.

repliesFromCacheToPeer

Numero di risposte che la cache dei contenuti ha fornito dalla sua cache alle cache di contenuti peer durante il periodo mostrato nel grafico.

repliesFromOriginToChild

Numero di risposte che la cache dei contenuti ha scaricato tramite internet e fornito alle cache di contenuti figlio durante il periodo mostrato nel grafico.

repliesFromOriginToClient

Numero di risposte che la cache dei contenuti ha scaricato tramite internet e fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

repliesFromOriginToPeer

Numero di risposte che la cache dei contenuti ha scaricato tramite internet e fornito alle cache di contenuti peer durante il periodo mostrato nel grafico.

repliesFromParentToChild

Numero di risposte la cache dei contenuti ha scaricato dalle cache padre e fornito alle cache dei contenuti figlio durante il periodo mostrato nel grafico.

repliesFromParentToClient

Numero di risposte la cache dei contenuti ha scaricato dalle cache padre e fornito ai dispositivi client Apple figlio durante il periodo mostrato nel grafico.

repliesFromParentToPeer

Numero di risposte la cache dei contenuti ha scaricato dalle cache padre e fornito alle cache dei contenuti peer durante il periodo mostrato nel grafico.

repliesFromPeerToChild

Numero di risposte la cache dei contenuti ha ricevuto dalle cache peer e fornito alle cache dei contenuti figlio durante il periodo mostrato nel grafico.

repliesFromPeerToClient

Numero di risposte la cache dei contenuti ha ricevuto dalle cache peer e fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

requestsFromChild

Numero di richieste di download che la cache dei contenuti ha ricevuto dalle cache dei contenuti figlio durante il periodo mostrato nel grafico.

requestsFromClient

Numero di richieste di download che la cache dei contenuti ha ricevuto dai dispositivi client Apple durante il periodo mostrato nel grafico.

requestsFromPeer

Numero di richieste di download che la cache dei contenuti ha ricevuto dalle cache dei contenuti peer durante il periodo mostrato nel grafico.

requestsRejectedForNoSpace

Numero di richieste di download che la cache dei contenuti ha rifiutato durante il periodo mostrato nel grafico a causa di un’elevata pressione nella cache (con codice di risposta HTTP 503, servizio non disponibile).

Raggruppare i risultati

Potresti trovare utile raggruppare alcuni degli elementi qui sopra. Ecco alcuni suggerimenti. Tutti i contenuti sono integri.

Contenuto

Oggetti raggruppati

Descrizione

Byte caricati

Somma di bytesImportedBy*

Quantità di dati caricati tramite la cache dei contenuti durante il periodo mostrato nel grafico.

Byte forniti

Quantità totale di dati che la cache dei contenuti ha fornito durante il periodo mostrato nel grafico. Quando questo valore è diverso da zero, la cache dei contenuti sta funzionando.

Somma di bytesFrom*To*

Byte forniti al client

Somma di bytesFrom*ToClient

Quantità di dati che la cache dei contenuti ha fornito ai dispositivi client Apple durante il periodo mostrato nel grafico.

Byte forniti al figlio

Somma di bytesFrom*ToChild

Quantità di dati che la cache dei contenuti ha fornito a qualsiasi cache dei contenuti figlio durante il periodo mostrato nel grafico.

Byte forniti al peer

Somma di bytesFrom*ToPeer

Quantità di dati che la cache dei contenuti ha fornito a qualsiasi cache dei contenuti peer durante il periodo mostrato nel grafico.

Byte forniti dal padre

Somma di bytesFromParentTo*

Quantità di dati che la cache dei contenuti ha scaricato da qualsiasi cache dei contenuti padre durante il periodo mostrato nel grafico.

Byte forniti dal peer

Somma di bytesFromPeerTo*

Quantità di dati che la cache dei contenuti ha scaricato da qualsiasi cache dei contenuti peer durante il periodo mostrato nel grafico.

Byte forniti dall’origine

Somma di bytesFromOriginTo*

Quantità di dati che la cache dei contenuti ha scaricato da internet durante il periodo mostrato nel grafico.

Byte forniti dalla cache

Somma di bytesFromCacheTo*

Quantità di dati che la cache dei contenuti ha fornito dalla cache durante il periodo mostrato nel grafico. Più questo valore si avvicina a quello dei byte forniti, più la cache dei contenuti è utile.

Byte scaricati

bytesFrom

<Origin,Parent,Peer>To

Quantità di dati che la cache dei contenuti ha scaricato tramite internet o da peer o padre durante il periodo mostrato nel grafico.

Ottenere dati pressione cache

Puoi verificare l’urgenza con cui la cache dei contenuti ha avuto bisogno di più spazio di archiviazione durante il periodo di riferimento. È preferibile un valore basso di pressione cache.

Monitoraggio Attività calcola la pressione cache come segue:

  • 100% quando requestsRejectedForNoSpace > 0

  • 80% quando bytesPurgedYoungerThan1Day > 0

  • 60% quando bytesPurgedYoungerThan7Days > 0

  • 40% quando bytesPurgedYoungerThan30Days > 0

  • 20% quando bytesPurgedTotal > 0

  • 0% negli altri casi

Monitoraggio Attività raccoglie anche gli elementi qui sopra come segue, per esempio per calcolare i valori su un intervallo di tempo più lungo di un determinato periodo.

  • Per conteggi di byte, importazioni, richieste o risposte, li somma all’intervallo di tempo.

  • Per la pressione cache, calcola il massimo rispetto all’intervallo di tempo.

Codice esemplificativo per la lettura del database delle metriche

#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 }}
Data di pubblicazione: 27 ottobre 2021
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Utile?
Limite di caratteri: 250
Il limite massimo di caratteri è 250.
Grazie per il tuo feedback.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.