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
}
}