
Tartalom-gyorsítótárazási mérőszámok a Macen
A tartalom-gyorsítótárazás az alábbi mappában tárolja el a mérőszámokat:
/Library/Application Support/Apple/AssetCache/Metrics.
A metrika nem mozog együtt a gyorsítótárazott tartalommal, mindig ezen a helyen kerül eltárolásra. Például, ha áthelyezi a gyorsítótárat a következő helyről:
/Library/Application Support/Apple/AssetCache/Data
-
/Volumes/Data/Library/Application Support/Apple/AssetCache/Data
a mérőszámok továbbra is a következő helyen lesznek eltárolva:
/Library/Application Support/Apple/AssetCache/Metrics
Ha korábban már használtak tartalom-gyorsítótárazást a Macen, ez a mappa tartalmaz egy Metrics.db nevű fájlt, illetve tartalmazhat egy vagy több hasonló nevű fájlt. Ezek a fájok egy SQLite adatbázist képeznek, amelyet Ön beolvashat.
A CoreData objektummodell, amely leírja a metrikát a „Metric” entitásként érhető el a következő helyen: /usr/libexec/AssetCache/AssetCache.momd.
Megjegyzés: Bár az alábbi leírás a 7. verziójú modellről szól, az Apple értesítés nélkül módosíthatja a modellt (vagy az SQLite-tól eltérő adatbázist használhat) a macOS jövőbeni kiadásaiban. Ez szükségessé teheti a gyorsítótárazási tartalom adatai összesítésére konfigurált szkriptek frissítését.
A tartalom-gyorsítótár:
A futása minden egyes percében hozzáad egy új sort az adatbázishoz
Tétlenség alatt nem ad hozzá „csak nulla” sorokat, egyszerűen csak átugorja azok hozzáadását
Nem módosítja a meglévő sorokat
Rendszeresen törli a 30 napnál régebbi sorokat
Tipp: A MetricsInterval speciális beállítás módosításával átállíthatja a jelentési időtartamot 60 másodpercről, míg a MetricsMaxAge speciális beállítás módosításával az eltárolt sorok maximális életkorát állíthatja át 30 napról.
Az adatbázis minden egyes sora az alábbi oszlopokat tartalmazza. A creationDate kivételével mindegyik objektum opcionális.
Objektum  | Leírás  | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
bytesDropped  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött a jelentési időtartam során, de nem tudott hozzáadni a gyorsítótárhoz.  | ||||||||||
bytesFromCacheToChild  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromCacheToClient  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a kliens Apple eszköökk felé a jelentési időtartam során.  | ||||||||||
bytesFromCacheToPeer  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromOriginToChild  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromOriginToClient  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül és kiszolgált kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
bytesFromOriginToPeer  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül és kiszolgált a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromParentToChild  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótáraiból és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromParentToClient  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótáraiból és kiszolgált a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
bytesFromParentToPeer  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótáraiból és kiszolgált a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromPeerToChild  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár a társ tartalom-gyorsítótáraiból fogadott és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
bytesFromPeerToClient  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár a társ tartalom-gyorsítótáraiból fogadott és kiszolgált a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
bytesImportedByHTTP  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár HTTP-n keresztül fogadott a jelentési időtartam során.  | ||||||||||
bytesImportedByXPC  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár XPC-n keresztül fogadott a jelentési időtartam során.  | ||||||||||
bytesPurgedTotal  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár törölt a gyorsítótárából a jelentési időtartam során. Tartalmazza a következőt: bytesPurgedYoungerThan30Days.  | ||||||||||
bytesPurgedYoungerThan1Day  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár törölt a gyorsítótárából a jelentési időtartam során, és amelyet kevesebb mint egy napja adott hozzá a gyorsítótárhoz.  | ||||||||||
bytesPurgedYoungerThan30Days  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár törölt a gyorsítótárából a jelentési időtartam során, és amelyet kevesebb mint 30 napja adott hozzá a gyorsítótárhoz. Tartalmazza a következőt: bytesPurgedYoungerThan7Days.  | ||||||||||
bytesPurgedYoungerThan7Days  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár törölt a gyorsítótárából a jelentési időtartam során, és amelyet kevesebb mint 7 napja adott hozzá a gyorsítótárhoz. Tartalmazza a következőt: bytesPurgedYoungerThan1Day.  | ||||||||||
creationDate  | Az a dátum, amikor a mérőszám objektum begyűjtésre került. Ez a mérőszám elem leírja a tartalom-gyorsítótár teljesítményét a creationDate-nél befejeződő jelentési időtartam alatt.  | ||||||||||
importsByHTTP  | Azon feltöltési kérelmek száma, amelyet a tartalom-gyorsítótár HTTP-n keresztül fogadott a jelentési időtartam során.  | ||||||||||
importsByXPC  | Azon feltöltési kérelmek száma, amelyet a tartalom-gyorsítótár XPC-n keresztül fogadott a jelentési időtartam során.  | ||||||||||
pont  | A creationdate-nél befejeződő jelentési időköz időtartama másodpercekben.  | ||||||||||
repliesFromCacheToChild  | A válaszok azon száma, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromCacheToClient  | A válaszok azon száma, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
repliesFromCacheToPeer  | A válaszok azon száma, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromOriginToChild  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül, és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromOriginToClient  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül, és kiszolgált a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
repliesFromOriginToPeer  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül, és kiszolgált a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromParentToChild  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótárakból és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromParentToClient  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótárakból és kiszolgált a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
repliesFromParentToPeer  | A válaszok azon száma, amelyet a tartalom-gyorsítótár letöltött a szülő tartalom-gyorsítótárakból és kiszolgált a társ tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromPeerToChild  | A válaszok azon száma, amelyet a tartalom-gyorsítótár a társ tartalom-gyorsítótáraktól fogadott, és kiszolgált a gyermek tartalom-gyorsítótárak felé a jelentési időtartam során.  | ||||||||||
repliesFromPeerToClient  | A válaszok azon száma, amelyet a tartalom-gyorsítótár a társ tartalom-gyorsítótáraktól fogadott, és kiszolgált a kliens Apple eszközök felé a jelentési időtartam során.  | ||||||||||
requestsFromChild  | A letöltési kérelmek azon száma, amelyet a tartalom-gyorsítótár fogadott a gyermek tartalom-gyorsítótáraktól a jelentési időtartam során.  | ||||||||||
requestsFromClient  | A letöltési kérelmek azon száma, amelyet a tartalom-gyorsítótár fogadott a kliens Apple eszközöktől a jelentési időtartam során.  | ||||||||||
requestsFromPeer  | A letöltési kérelmek azon száma, amelyet a tartalom-gyorsítótár fogadott a társ tartalom-gyorsítótáraktól a jelentési időtartam során.  | ||||||||||
requestsRejectedForNoSpace  | A letöltési kérelmek azon száma, amelyet a tartalom-gyorsítótár elutasított a jelentési időtartam során a magas gyorsítótárnyomás miatt (HTTP 503 kóddal, a szolgáltatás nem érhető el).  | ||||||||||
Csoporteredmények
Érdemes lehet a fentebb látható elemek egy részét összecsoportosítani. Az alábbiakban pár javaslatot olvashat. Az összes tartalom egész szám alapú.
Tartalom  | Csoportosított objektumok  | Leírás  | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Bájt feltöltve  | A bytesImportedBy* összege  | Az az adatmennyiség, amelyet feltöltöttek a tartalom-gyorsítótáron keresztül a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva  | Az a teljes adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a jelentési időtartam során. Ha ez az érték nem nulla, a tartalom-gyorsítótár működik.  | A bytesFrom*To* összege  | |||||||||
Bájt kiszolgálva a gyermeknek  | A bytesFrom*ToChild összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált bármelyik gyermek tartalom-gyorsítótára felé a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva a gyorsítótárból  | A bytesFromCacheTo* összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a gyorsítótárából a jelentési időtartam során. Minél közelebb van ez az érték a Bájt kiszolgálva értékhez, annál nagyobb a tartalom-gyorsítótár hozzájárulása.  | |||||||||
Bájt kiszolgálva a kliensnek  | A bytesFrom*ToClient összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált a kliens Apple-eszközökről a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva a szülőből  | A bytesFromParentTo* összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár a szülő tartalom-gyorsítótáraiból letöltött a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva a társból  | Sum of bytesFromPeerTo*  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár a társ tartalom-gyorsítótáraiból letöltött a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva a társnak  | A bytesFrom*ToPeer összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár kiszolgált bármelyik társ tartalom-gyorsítótára felé a jelentési időtartam során.  | |||||||||
Bájt kiszolgálva az eredeti helyről  | A bytesFromOriginTo* összege  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül a jelentési időtartam során.  | |||||||||
Bájt letöltve  | bytesFrom <Origin,Parent,Peer>To  | Az az adatmennyiség, amelyet a tartalom-gyorsítótár letöltött az interneten keresztül, illetve a társaktól vagy a szülőktől a jelentési időtartam során.  | |||||||||
Gyorsítótárnyomási adatok beszerzése
Áttekintheti, hogy a tartalom-gyorsítótárnak milyen sürgősen kell további tárhely a jelentési időtartam alatt. Az alacsonyabb gyorsítótárnyomás a jobb.
A Tevékenységfigyelő az alábbiaknak megfelelően számítja ki a gyorsítótárnyomást:
100%, ha requestsRejectedForNoSpace > 0
80%, ha bytesPurgedYoungerThan1Day > 0
60%, ha bytesPurgedYoungerThan7Days > 0
40%, ha bytesPurgedYoungerThan30Days > 0
20%, ha bytesPurgedTotal > 0
ellenkező esetben 0%
A Tevékenységfigyelő az alábbiak szerint a fenti elemeket is begyűjti (pl. egy időközön túlnyúló értékek kiszámításához).
A bájt, az importálási, a kérelem és a válasz számláló esetében összegez a megadott időköz alatt.
A gyorsítótárnyomás esetében kiszámolja a maximumot a megadott időköz alatt.
Mintakód a mérőszám-adatbázis leolvasásához
#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    }}