Indicateurs de mise en cache de contenu sur Mac

La mise en cache de contenu stocke des indicateurs dans le dossier suivant :

/Bibliothèque/Application Support/Apple/AssetCache/Metrics.

Les indicateurs ne sont pas déplacés avec le contenu mis en cache. Au lieu de cela, ils sont toujours stockés dans cet emplacement. Par exemple, si vous déplacez le cache de :

/Bibliothèque/Application Support/Apple/AssetCache/Data

vers

/Volumes/Data/Bibliothèque/Application Support/Apple/AssetCache/Data

les indicateurs restent stockés dans

/Bibliothèque/Application Support/Apple/AssetCache/Metrics

Si la mise en cache de contenu a déjà été utilisée sur un Mac, ce dossier contient un fichier nommé Metrics.db et peut contenir un ou plusieurs autres fichiers avec des noms similaires. Ces fichiers constituent une base de données SQLite que vous pouvez lire.

Le modèle d’objet CoreData qui décrit les indicateurs est disponible sous la forme de l’entité « Metric » dans /usr/libexec/AssetCache/AssetCache.momd.

Remarque : bien qu’il s’agisse d’une description du modèle de la version 7, Apple est susceptible de changer ce modèle, ou d’utiliser une base de données autre que SQLite, dans des versions futures de macOS, sans préavis. Cela pourrait nécessiter des mises à jour de tout script que vous auriez configuré afin d’agréger les données de mise en cache de contenu.

Le cache de contenu :

  • Ajoute un nouveau rang à la base de données à chaque minute lors de son exécution.

  • N’ajoute pas de rangs contenant uniquement des zéros lorsqu’il est inactif, il ignore simplement l’ajout de ces rangs.

  • Ne modifie pas les rangs existants.

  • Supprime régulièrement les rangs lorsqu’ils datent de plus de 30 jours.

Astuce : vous pouvez changer la période de rapport de 60 secondes en modifiant le réglage avancé MetricsInterval et vous pouvez changer l’âge maximal des rangs stockés de 30 jours en modifiant le réglage avancé MetricsMaxAge.

Chaque rang de la base de données contient les colonnes suivantes. Chaque objet est facultatif, sauf creationDate.

Objet

Description

bytesDropped

Quantité de données téléchargées par le cache de contenu pendant la période de rapport, mais n’ayant pas pu être ajoutées au cache.

bytesFromCacheToChild

Quantité de données que le cache de contenu a fournies de son cache à des caches de contenu enfants pendant la période de rapport.

bytesFromCacheToClient

Quantité de données que le cache de contenu a fournies de son cache à des appareils Apple clients pendant la période de rapport.

bytesFromCacheToPeer

Quantité de données que le cache de contenu a fournies de son cache à des caches de contenu pairs pendant la période de rapport.

bytesFromOriginToChild

Quantité de données que le cache de contenu a téléchargées depuis Internet et a fournies à des caches de contenu enfants pendant la période de rapport.

bytesFromOriginToClient

Quantité de données que le cache de contenu a téléchargées depuis Internet et a fournies à des appareils Apple clients pendant la période de rapport.

bytesFromOriginToPeer

Quantité de données que le cache de contenu a téléchargées depuis Internet et a fournies à des caches de contenu pairs pendant la période de rapport.

bytesFromParentToChild

Quantité de données que le cache de contenu a téléchargées depuis des caches de contenu parents et a fournies à des caches de contenu enfants pendant la période de rapport.

bytesFromParentToClient

Quantité de données que le cache de contenu a téléchargées depuis des caches de contenu parents et a fournies à des appareils Apple clients pendant la période de rapport.

bytesFromParentToPeer

Quantité de données que le cache de contenu a téléchargées depuis des caches de contenu parents et a fournies à des caches de contenu pairs pendant la période de rapport.

bytesFromPeerToChild

Quantité de données que le cache de contenu a reçues de caches de contenu pairs et a fournies à des caches de contenu enfants pendant la période de rapport.

bytesFromPeerToClient

Quantité de données que le cache de contenu a reçues de caches de contenu pairs et a fournies à des appareils Apple clients pendant la période de rapport.

bytesImportedByHTTP

Quantité de données que le cache de contenu a reçues via HTTP pendant la période de rapport.

bytesImportedByXPC

Quantité de données que le cache de contenu a reçues via XPC pendant la période de rapport.

bytesPurgedTotal

Quantité de données que le cache de contenu a purgées de son cache pendant la période de rapport. Comprend bytesPurgedYoungerThan30Days.

bytesPurgedYoungerThan1Day

Quantité de données que le cache de contenu a purgées de son cache pendant la période de rapport, qu’il avait ajoutées au cache moins d’un jour auparavant.

bytesPurgedYoungerThan30Days

Quantité de données que le cache de contenu a purgées de son cache pendant la période de rapport, qu’il avait ajoutées au cache moins de 30 jours auparavant. Comprend bytesPurgedYoungerThan7Days.

bytesPurgedYoungerThan7Days

Quantité de données que le cache de contenu a purgées de son cache pendant la période de rapport, qu’il avait ajoutées au cache moins de sept jours auparavant. Comprend bytesPurgedYoungerThan1Day.

creationDate

Date à laquelle cet objet d’indicateur a été collecté. Cet élément d’indicateur décrit les performances du cache de contenu pendant la période se terminant à la date creationDate.

importsByHTTP

Nombre de demandes de chargements que le cache de contenu a reçues via HTTP pendant la période de rapport.

importsByXPC

Nombre de demandes de chargements que le cache de contenu a reçues via XPC pendant la période de rapport.

period

Durée, en secondes, de la période de rapport se terminant à la date creationDate.

repliesFromCacheToChild

Nombre de réponses que le cache de contenu a fournies de son cache à des caches de contenu enfants pendant la période de rapport.

repliesFromCacheToClient

Nombre de réponses que le cache de contenu a fournies de son cache à des appareils Apple clients pendant la période de rapport.

repliesFromCacheToPeer

Nombre de réponses que le cache de contenu a fournies de son cache à des caches de contenu pairs pendant la période de rapport.

repliesFromOriginToChild

Nombre de réponses que le cache de contenu a téléchargées depuis Internet et a fournies à des caches de contenu enfants pendant la période de rapport.

repliesFromOriginToClient

Nombre de réponses que le cache de contenu a téléchargées depuis Internet et a fournies à des appareils Apple clients pendant la période de rapport.

repliesFromOriginToPeer

Nombre de réponses que le cache de contenu a téléchargées depuis Internet et a fournies à des caches de contenu pairs pendant la période de rapport.

repliesFromParentToChild

Nombre de réponses que le cache de contenu a téléchargé depuis des caches de contenu parents et a fourni à des caches de contenu enfants pendant la période de rapport.

repliesFromParentToClient

Nombre de réponses que le cache de contenu a téléchargé depuis des caches de contenu parents et a fourni à des appareils Apple clients pendant la période de rapport.

repliesFromParentToPeer

Nombre de réponses que le cache de contenu a téléchargées depuis des caches de contenu parents et a fournies à des caches de contenu pairs pendant la période de rapport.

repliesFromPeerToChild

Nombre de réponses que le cache de contenu a reçues de caches de contenu pairs et a fournies à des caches de contenu enfants pendant la période de rapport.

repliesFromPeerToClient

Nombre de réponses que le cache de contenu a reçues de caches de contenu pairs et a fournies à des appareils Apple clients pendant la période de rapport.

requestsFromChild

Nombre de demandes de téléchargements que le cache de contenu a reçues de caches de contenu enfants pendant la période de rapport.

requestsFromClient

Nombre de demandes de téléchargements que le cache de contenu a reçues de appareils Apple clients pendant la période de rapport.

requestsFromPeer

Nombre de demandes de téléchargements que le cache de contenu a reçues de caches de contenu pairs pendant la période de rapport.

requestsRejectedForNoSpace

Nombre de demandes de téléchargements que le cache de contenu a refusées pendant la période de rapport en raison d’une forte pression de cache (avec code de réponse HTTP 503, Service indisponible).

Grouper les résultats

Vous trouverez peut-être utile de regrouper certains des éléments ci-dessus. Voici quelques suggestions. Tout le contenu est basé sur des nombres entiers.

Contenu

Objets groupés

Description

Octets chargés

Somme de bytesImportedBy*

Quantité de données chargées à travers le cache de contenu pendant la période de rapport.

Octets fournis

Quantité totale de données que le cache de contenu a fournies pendant la période de rapport. Lorsque cette valeur diffère de zéro, le contenu est mis en cache.

Somme de bytesFrom*To*

Octets fournis à un client

Somme de bytesFrom*ToClient

Quantité de données que le cache de contenu a fournies à des appareils Apple clients pendant la période de rapport.

Octets fournis à un enfant

Somme de bytesFrom*ToChild

Quantité de données que le cache de contenu a fournies à l’un de ses caches de contenu enfants pendant la période de rapport.

Octets fournis à un pair

Somme de bytesFrom*ToPeer

Quantité de données que le cache de contenu a fournies à l’un de ses caches de contenu pairs pendant la période de rapport.

Octets fournis depuis l’origine

Somme de bytesFromOriginTo*

Quantité de données que le cache de contenu a téléchargées sur Internet pendant la période de rapport.

Octets fournis depuis le cache

Somme de bytesFromCacheTo*

Quantité de données que le cache de contenu a fournies depuis son cache pendant la période de rapport. Plus cette valeur est proche de celle des octets fournis, plus la mise en cache de contenu a été utile.

Octets fournis depuis un pair

Somme de bytesFromPeerTo*

Quantité de données que le cache de contenu a téléchargées de l’un de ses caches de contenu pairs pendant la période de rapport.

Octets fournis depuis un parent

Somme de bytesFromParentTo*

Quantité de données que le cache de contenu a téléchargées de l’un de ses caches de contenu parents pendant la période de rapport.

Octets téléchargés

bytesFrom

<Origin,Parent,Peer>To

Quantité de données que le cache de contenu a téléchargées soit depuis Internet, soit depuis des pairs ou des parents, pendant la période de rapport.

Obtenir des données sur la pression de cache

Vous pouvez examiner dans quelle mesure le cache de contenu a eu besoin de davantage d’espace de stockage au cours de la période de rapport. Une pression de cache faible est préférable.

Moniteur d’activité calcule la pression de cache comme suit :

  • 100 % lorsque requestsRejectedForNoSpace > 0

  • 80 % lorsque bytesPurgedYoungerThan1Day > 0

  • 60 % lorsque bytesPurgedYoungerThan7Days > 0

  • 40 % lorsque bytesPurgedYoungerThan30Days > 0

  • 20 % lorsque bytesPurgedTotal > 0

  • 0 % dans les autres cas

Moniteur d’activité rassemble également les éléments ci-dessus comme suit, par exemple pour calculer les valeurs au cours d’un intervalle de temps supérieur à une période.

  • Pour le nombre d’octets, le nombre d’importations, le nombre de requêtes ou le nombre de réponses, somme de ceux-ci sur l’intervalle de temps.

  • Pour la pression de cache, calcul du maximum sur l’intervalle de temps.

Exemple de code pour lire la base de données des indicateurs

#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 }}
Date de publication : 27 octobre 2021
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Avez-vous trouvé cet article utile ?
Limite de caractères : 250
La limite maximale des caractères est 250.
Merci de votre feedback.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.