Metrik cache kandungan pada Mac
Cache Kandungan menyimpan metrik dalam folder berikut:
/Library/Application Support/Apple/AssetCache/Metrics.
Metrik tidak dialihkan dengan kandungan cache; sebaliknya mereka sentiasa disimpan di lokasi ini. Sebagai contoh, jika anda mengalihkan cache daripada:
/Library/Application Support/Apple/AssetCache/Data
ke
/Volumes/Data/Library/Application Support/Apple/AssetCache/Data
metrik masih disimpan dalam
/Library/Application Support/Apple/AssetCache/Metrics
Jika Cache Kandungan pernah digunakan pada Mac, folder ini mengandungi fail yang dinamakan Metrics.db dan mungkin mengandungi satu atau lebih fail lain dengan nama serupa. Fail ini menandakan pangkalan data SQLite yang anda boleh baca.
Model objek CoreData yang menerangkan metrik yang tersedia sebagai entiti “Metrik” dalam /usr/libexec/AssetCache/AssetCache.momd.
Nota: Walaupun ini ialah perihalan model versi 7 di sini, Apple mungkin menukar model ini—atau menggunakan pangkalan data selain daripada SQLite—dalam keluaran macOS akan datang tanpa notis. Ini mungkin memerlukan kemas kini pada sebarang skrip yang anda telah konfigurasikan untuk mengagregat data kandungan cache.
Cache kandungan:
Menambah baris baharu ke pangkalan data setiap minit semasa ia berjalan
Tidak menambah baris “semua sifar” apabila melahu; ia hanya melangkau untuk menambah baris begitu
Tidak mengubah suai baris sedia ada
Memadamkan baris secara berkala apabila ia lebih daripada 30 hari
Petua: Anda boleh menukar tempoh masa pelaporan daripada 60 saat dengan menukar seting lanjutan MetricsInterval
dan anda boleh menukar umur maksimum baris disimpan daripada 30 hari dengan menukar seting lanjutan MetricsMaxAge
.
Setiap baris dalam pangkalan data mengandungi lajur berikut. Setiap objek ialah secara pilihan kecuali creationDate
.
Objek | Perihalan | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
bytesDropped | Jumlah data dimuat turun cache kandungan semasa tempoh pelaporan tetapi tidak boleh ditambah ke cache. | ||||||||||
bytesFromCacheToChild | Jumlah data dibekal oleh cache kandungan daripada cachenya kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
bytesFromCacheToClient | Jumlah data dibekal oleh cache kandungan daripada cachenya kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
bytesFromCacheToPeer | Jumlah data dibekal oleh cache kandungan daripada cachenya kepada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
bytesFromOriginToChild | Jumlah data dimuat turun oleh cache kandungan melalui internet dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
bytesFromOriginToClient | Jumlah data dimuat turun oleh cache kandungan melalui internet dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
bytesFromOriginToPeer | Jumlah data dimuat turun oleh cache kandungan melalui internet dan dibekal kepada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
bytesFromParentToChild | Jumlah data dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
bytesFromParentToClient | Jumlah data dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
bytesFromParentToPeer | Jumlah data dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
bytesFromPeerToChild | Jumlah data diterima oleh cache kandungan daripada cache kandungan setara dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
bytesFromPeerToClient | Jumlah data diterima oleh cache kandungan daripada cache kandungan setara dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
bytesImportedByHTTP | Jumlah data diterima oleh cache kandungan menerusi HTTP semasa tempoh pelaporan. | ||||||||||
bytesImportedByXPC | Jumlah data diterima oleh cache kandungan menerusi XPC semasa tempoh pelaporan. | ||||||||||
bytesPurgedTotal | Jumlah data disingkirkan daripada cache kandungan cachenya semasa tempoh pelaporan. Termasuk bytesPurgedYoungerThan30Days. | ||||||||||
bytesPurgedYoungerThan1Day | Jumlah data disingkirkan daripada cache kandungan cachenya semasa tempoh pelaporan, yang ia telah tambah ke cache kurang daripada satu hari lalu. | ||||||||||
bytesPurgedYoungerThan30Days | Jumlah data disingkirkan daripada cache kandungan cachenya semasa tempoh pelaporan, yang ia telah tambah ke cache kurang daripada 30 hari lalu. Termasuk bytesPurgedYoungerThan7Days. | ||||||||||
bytesPurgedYoungerThan7Days | Jumlah data disingkirkan daripada cache kandungan cachenya semasa tempoh pelaporan, yang ia telah tambah ke cache kurang daripada 7 hari lalu. Termasuk bytesPurgedYoungerThan1Day. | ||||||||||
creationDate | Tarikh objek metrik dikumpulkan. Item metrik ini menerangkan prestasi cache kandungan semasa tempoh berakhir pada creationDate. | ||||||||||
importsByHTTP | Bilangan permintaan muat naik diterima oleh cache kandungan melalui HTTP semasa tempoh pelaporan. | ||||||||||
importsByXPC | Bilangan permintaan muat naik diterima oleh cache kandungan melalui XPC semasa tempoh pelaporan. | ||||||||||
period | Tempoh, dalam saat, tempoh pelaporan yang berakhir pada creationDate. | ||||||||||
repliesFromCacheToChild | Bilangan balasan cache kandungan yang dibekal daripada cachenya kepada kandungan anak semasa tempoh pelaporan. | ||||||||||
repliesFromCacheToClient | Bilangan balasan cache kandungan yang dibekal daripada cachenya kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
repliesFromCacheToPeer | Bilangan balasan cache kandungan yang dibekal daripada cachenya kepada kandungan setara semasa tempoh pelaporan. | ||||||||||
repliesFromOriginToChild | Bilangan balasan dimuat turun oleh cache kandungan melalui internet dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
repliesFromOriginToClient | Bilangan balasan dimuat turun oleh cache kandungan melalui internet dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
repliesFromOriginToPeer | Bilangan balasan dimuat turun oleh cache kandungan melalui internet dan dibekal kepada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
repliesFromParentToChild | Bilangan balasan dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
repliesFromParentToClient | Bilangan balasan dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
repliesFromParentToPeer | Bilangan balasan dimuat turun oleh cache kandungan daripada cache kandungan induk dan dibekal kepada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
repliesFromPeerToChild | Bilangan balasan diterima oleh cache kandungan daripada cache kandungan setara dan dibekal kepada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
repliesFromPeerToClient | Bilangan balasan diterima oleh cache kandungan daripada cache kandungan setara dan dibekal kepada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
requestsFromChild | Bilangan permintaan muat turun diterima oleh cache kandungan daripada cache kandungan anak semasa tempoh pelaporan. | ||||||||||
requestsFromClient | Bilangan permintaan muat turun diterima oleh cache kandungan daripada peranti Apple klien semasa tempoh pelaporan. | ||||||||||
requestsFromPeer | Bilangan permintaan muat turun diterima oleh cache kandungan daripada cache kandungan setara semasa tempoh pelaporan. | ||||||||||
requestsRejectedForNoSpace | Bilangan permintaan muat turun ditolak oleh cache kandungan semasa tempoh pelaporan disebabkan oleh tekanan cache yang tinggi (dengan respons HTTP kod 503, Perkhidmatan Tidak Tersedia). |
Hasil kumpulan
Ia mungkin berguna bagi anda untuk mengumpulkan item di atas. Ini ialah beberapa cadangan. Semua kandungan ialah berdasarkan integer.
Kandungan | Objek dikumpulkan | Perihalan | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Bait dibekal | Jumlah data cache kandungan dibekal semasa tempoh pelaporan. Apabila nilai ini adalah bukan sifar, cache kandungan sedang berfungsi. | Jumlah bytesFrom*To* | |||||||||
Bait dibekal daripada cache | Jumlah bytesFromCacheTo* | Jumlah data dibekal oleh cache kandungan daripada cachenya semasa tempoh pelaporan. Lebih dekat nilai ini kepada nilai Bait dibekal, lebih banyak cache kandungan yang membantu. | |||||||||
Bait dibekal daripada induk | Jumlah bytesFromParentTo* | Jumlah data dimuat turun oleh cache kandungan daripada sebarang cache kandungan induknya semasa tempoh pelaporan. | |||||||||
Bait dibekal daripada setara | Jumlah bytesFromPeerTo* | Jumlah data dimuat turun oleh cache kandungan daripada sebarang cache kandungan setaranya semasa tempoh pelaporan. | |||||||||
Bait dibekal kepada anak | Jumlah bytesFrom*ToChild | Jumlah data dibekal oleh cache kandungan ke sebarang cache kandungan anaknya semasa tempoh pelaporan. | |||||||||
Bait dibekal kepada klien | Jumlah bytesFrom*ToClient | Jumlah data dibekal oleh cache kandungan kepada peranti Apple klien semasa tempoh pelaporan. | |||||||||
Bait dibekal kepada setara | Jumlah bytesFrom*ToPeer | Jumlah data dibekal oleh cache kandungan ke sebarang cache kandungan setaranya semasa tempoh pelaporan. | |||||||||
Bait dimuat naik | Jumlah bytesImportedBy* | Jumlah data dimuat naik menerusi cache kandungan semasa tempoh pelaporan. | |||||||||
Bait dimuat turun | bytesFrom <Origin,Parent,Peer>To | Jumlah data dimuat turun cache kandungan sama ada melalui internet atau daripada setara atau induk semasa tempoh pelaporan. | |||||||||
Data dibekal daripada asal | Jumlah bytesFromOriginTo* | Jumlah data dimuat turun oleh cache kandungan melalui internet semasa tempoh pelaporan. |
Dapatkan data tekanan cache
Anda boleh menyemak berapa segera cache kandungan memerlukan lebih ruang cakera semasa tempoh pelaporan. Tekanan cache rendah adalah lebih baik.
Monitor Aktiviti mengira tekanan cache seperti berikut:
100% apabila requestsRejectedForNoSpace > 0
80% apabila bytesPurgedYoungerThan1Day > 0
60% apabila bytesPurgedYoungerThan7Days > 0
40% apabila bytesPurgedYoungerThan30Days > 0
20% apabila bytesPurgedTotal > 0
0% jika tidak
Monitor Aktiviti juga mengumpul semak item di atas seperti berikut, contohnya untuk mengira nilai sepanjang selang masa yang lebih lama dari satu tempoh.
Untuk kiraan bait, kiraan import, kiraan permintaan atau kiraan tindak balas, jumlahkannya sepanjang selang masa.
Untuk tekanan cache, kira maksimum sepanjang selang masa.
Kod sampel untuk bacaan pangkalan data metrik
#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
}
}