Impostazioni avanzate della cache dei contenuti sul Mac
Puoi adattare la cache dei contenuti alla configurazione di rete tramite parametri di configurazione avanzata.
Per impostare parametri di configurazione avanzata per la cache dei contenuti, puoi utilizzare la riga di comando in Terminale o modificare il valore delle chiavi nel file /Library/Preferences/com.apple.AssetCache.plist. Affinché alcune modifiche abbiano effetto, la cache dei contenuti deve essere interrotta e riavviata.
Configurare le impostazioni avanzate
Puoi configurare alcune impostazioni avanzate per il servizio di cache dei contenuti andando in Impostazioni di Sistema (macOS 13 o versione successiva) o in Preferenze di Sistema (macOS 12.0.1 o versioni precedenti) > Condivisione > Cache dei contenuti. Poi, tieni premuto il tasto Opzione e seleziona “Opzioni avanzate”.
Puoi configurare impostazioni ancora più avanzate con l’applicazione Terminale sul Mac utilizzando il comando defaults
, seguito dal comando sudo AssetCacheManagerUtil reloadSettings
. Utilizza il comando AssetCacheManagerUtil settings
per visualizzare le impostazioni standard (non avanzate).
Puoi impostare chiavi semplici e complesse con il comando defaults
.
Per esempio, per codificare il numero di porta (50000) nella versione non dinamica, deve essere qualsiasi numero compreso tra 49192 e 65535. Inoltre occorre eseguire questo comando come amministratore:
$ sudo -u _assetcache defaults write /Library/Preferences/com.apple.AssetCache.plist Port -int 50000
ListenRanges
è una chiave complessa che utilizza una matrice di dizionari. Ad esempio, esegui il comando come amministratore per impostare due intervalli di indirizzi IP per la chiave ListenRanges:
$ sudo -u _assetcache defaults write /Library/Preferences/com.apple.AssetCache.plist ListenRanges '( { first = 10.0.0.1; last = 10.0.0.254; }, { first = 10.1.0.1; last = 10.1.0.254; } )'
Dopo aver utilizzato il comando defaults, assicurati di eseguire il comando seguente per ricaricare le impostazioni della cache dei contenuti:
$ sudo AssetCacheManagerUtil reloadSettings
Chiavi plist e valori per la configurazione della cache
Importante: non modificare nessuna impostazione nel file com.apple.AssetCache.plist, tranne quelle descritte nella tabella di seguito.
Una chiave può avere un valore che è compreso tra due valori. Il valore della chiave può essere qualsiasi numero compreso tra il valore più basso e quello più alto. Se è impostato al di sotto del valore più basso, viene utilizzato il valore più basso. Se il valore è impostato al di sopra del valore più alto, viene utilizzato il valore più alto. Ad esempio, PeerDownloadTimeout deve essere compreso tra 5 e 300. Se è impostato su 301 o 1000, il valore verrà impostato su 300. Se è impostato su 4 o -10, il valore verrà impostato su 5.
Alcune modifiche hanno effetto dopo aver eseguito AssetCacheManagerUtil reloadSettings
; per altre è necessario interrompere e riavviare la cache dei contenuti. Le uniche chiavi che supportano reloadSettings sono quelle che possono essere impostate anche nelle preferenze della cache dei contenuti (indicate nella tabella di seguito). Per impostare valori nelle preferenze della cache dei contenuti:
macOS 13 o versione successiva: scegli menu Apple > Impostazioni di Sistema > Generali > Condivisione > Cache dei contenuti.
macOS 12.0.1 o versione precedente: scegli menu Apple > Preferenze di Sistema > Condivisione > Cache dei contenuti.
Chiave | Descrizione | Valore di default | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AgeForLowSpaceAlert | Ti avvisa quando i contenuti vengono eliminati dalla cache dei contenuti per mancanza di spazio di archiviazione e i contenuti eliminati sono stati aggiunti alla cache dei contenuti da un numero di giorni inferiore a quelli specificati, riceverai un avviso di spazio in esaurimento. | 30 (giorni) | |||||||||
AllowCacheDelete | Consente di eliminare i contenuti dalla cache automaticamente quando il computer necessita di spazio di archiviazione per altre applicazioni. Per ottimizzare l’efficacia della cache dei contenuti, disattiva questa impostazione. | Sì | |||||||||
AllowImports | Consente le richieste di importazione (caricamento) | Sì | |||||||||
AllowPersonalCaching | Consente l’archiviazione nella cache dei dati di iCloud degli utenti. Almeno una delle chiavi AllowPersonalCaching o AllowSharedCaching deve essere impostata su Sì. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | Sì | |||||||||
AllowSharedCaching | Controlla l’archiviazione nella cache dei contenuti indipendenti da iCloud, come le app e gli aggiornamenti software. Almeno una delle chiavi AllowPersonalCaching o AllowSharedCaching deve essere impostata su Sì. | Sì | |||||||||
AllowWirelessPortable | Consente ai computer portatili Mac con connessioni di rete esclusivamente tramite Wi-Fi di eseguire la cache dei contenuti. | Sì | |||||||||
CacheLimit | Specifica il numero massimo di byte di spazio di archiviazione che viene usato per la cache dei contenuti. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | 0 (illimitati) | |||||||||
DatabaseUpdateInterval | Specifica la frequenza con cui la cache dei contenuti salva le modifiche sul database archiviato. Un intervallo più alto aumenta il rischio della perdita di contenuti archiviati in cache in seguito a un’interruzione di corrente. Il valore massimo è 3600 secondi (1 ora). Un intervallo pari a 0 comporta un aggiornamento continuo e immediato del database, senza ritardi, ma diminuisce le prestazioni. | 5 (secondi) | |||||||||
DataPath | Specifica percorso alla directory utilizzata per l’archiviazione dei contenuti della cache. La modifica manuale di queste impostazioni non sposta automaticamente i contenuti della cache dalla vecchia posizione alla nuova. Per spostare i contenuti automaticamente, utilizza le impostazioni della cache dei contenuti. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | /Library/Application Support/Apple/AssetCache/Data | |||||||||
DisplayAlerts | Visualizza le notifiche per gli avvisi della cache dei contenuti. Per ottimizzare l’efficacia della cache dei contenuti, attiva questa impostazione. | No | |||||||||
DownloadMinRate | Specifica il numero minimo di byte al secondo che i client devono sostenere durante il download dei contenuti dalla cache dei contenuti. La cache dei contenuti interrompe i download che trasferiscono dati a una velocità inferiore a quella specificata. Il valore minimo consentito è 1000 byte al secondo. | 8000 (byte al secondo) | |||||||||
DownloadTimeout | Specifica il tempo di inattività massimo consentito, in secondi, per il download da un client prima dell’interruzione. Il valore minimo consentito è 10 secondi. | 180 (secondi) | |||||||||
ImportMaxRate | Specifica il numero massimo di byte al secondo a cui la cache dei contenuti riceve i dati da ogni client. Un valore pari a 0 indica un numero illimitato di byte al secondo. | 0 (byte al secondo) | |||||||||
ImportMinRate | Specifica il numero minimo di byte al secondo che i client devono sostenere durante l’importazione (caricamento) dei contenuti. La cache dei contenuti interrompe le importazioni che trasferiscono dati a una velocità minore di quella specificata. Il valore minimo è 100 byte al secondo. | 2000 (byte al secondo) | |||||||||
ImportRateAttenuation | Specifica la percentuale di attenuazione aggiunta al tempo di caricamento. Il valore minimo consentito è 0% di attenuazione. I valori troppo grandi superano il valore ImportTimeout e causano degli errori. | 0,20 (percentuale) | |||||||||
ImportTimeout | Specifica il tempo di inattività massimo consentito, in secondi, per l’importazione (caricamento) da un client prima dell’interruzione. Il valore minimo è 10 secondi. | 300 (secondi) | |||||||||
Interface | Specifica il nome BSD di un’interfaccia di rete che viene usata dalla cache dei contenuti. Per esempio, en0. Inoltre è sempre in ascolto dell’interfaccia di loopback (host locale). | Ascolto di tutte le interfacce | |||||||||
KeepAwake | Mantiene il computer attivo quando la cache dei contenuti è attiva. Per ottimizzare la disponibilità della cache dei contenuti, attiva questa impostazione. Seleziona il riquadro “Impedisci al computer di andare automaticamente in standby quando il monitor è spento” in “Risparmio Energia” in Impostazioni di Sistema (macOS 13 o versione successiva) o in Preferenze di Sistema (macOS 12.0.1 o versioni precedenti). | No | |||||||||
ListenRanges | Una matrice di dizionari che descrive l’intervallo di indirizzi IP client da utilizzare. Di seguito troverai un esempio dell’utilizzo della chiave ListenRanges. La sottochiave tipo non è più necessaria e viene ignorata se presente. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | nessuno | |||||||||
ListenRangesOnly | Se ListenRangesOnly è impostato su vero, la cache fornisce i contenuti solo ai client nell’intervallo specificato dalla chiave ListenRanges. Se desideri utilizzare la chiave ListenRangesOnly, devi specificare anche la chiave ListenRanges. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | No | |||||||||
ListenWithPeers AndParents | Indica se la cache dei contenuti viene registrata con l’unione delle chiavi ListenRanges, PeerListenRanges e Parents, oppure solo con la chiave ListenRanges. Nota che ListenRanges può essere generata automaticamente da LocalSubnetsOnly, e PeerListenRanges può essere generata automaticamente da PeerLocalSubnetsOnly. | Il valore di default dipende dal computer:
| |||||||||
LocalSubnetsOnly | Indica se la cache offre i contenuti solo ai client sulla stessa rete locale immediata della cache dei contenuti, piuttosto che ai client su tutte le reti locali raggiungibili dalla cache dei contenuti. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | Sì | |||||||||
LogClientIdentity | Determina se è necessario che la cache dei contenuti registri l’indirizzo IP e il numero di porta dei client che richiedono contenuti. | No | |||||||||
MaxConcurrentClients | Specifica il numero massimo di client che una cache di contenuti può supportare. Apple non garantisce che una cache dei contenuti possa ottenere 3400 client contemporaneamente. | 3400 | |||||||||
MaxParentDepth | Specifica il numero massimo di volte, per una singola richiesta, che una cache figlio inoltra una richiesta a una cache padre. Le richieste che sono troppo profonde (la cui catena di inoltro è troppo lunga) vengono forzate all’origine piuttosto che al parent. | 8 | |||||||||
MaxPeersToQuery | Specifica il numero massimo di cache peer che richiedono contenuti. | 0 (illimitati) | |||||||||
MetricsInterval | Specifica quanto spesso, in secondi, deve essere aggiunta una riga di metriche al database delle metriche in /Library/Application Support/Apple/AssetCache/Metrics/Metrics.db.
Bloccato tra 1-60 secondi (inclusi). Puoi anche visualizzare tali metriche nel pannello Cache di Monitoraggio Attività. | 60 (secondi) | |||||||||
MetricsMaxAge | Le metriche anteriori a questa vengono rimosse dal database delle metriche una volta al giorno. Il valore minimo consentito è 30 giorni. | 30 (giorni) | |||||||||
OriginDownloadTimeout | Specifica il tempo espresso in secondi per consentire un download dai server di Apple e mantenere lo stato inattivo prima di interrompere il download (e possibilmente riprovare). Compreso tra 5 e 300 secondi, inclusi. | 60 | |||||||||
OriginUploadTimeout | Specifica il tempo di inattività massimo consentito, espresso in secondi, per il caricamento su un server di origine prima dell’interruzione. Compreso tra 5 e 3600 secondi, inclusi. | 600 | |||||||||
Parent | Una lista degli indirizzi IP locali di altre cache dei contenuti da cui questa cache deve eseguire il download o il caricamento dei contenuti invece che eseguirli direttamente da Apple. Gli indirizzi non validi e gli indirizzi di computer che non sono cache dei contenuti vengono ignorati. Le cache parent che diventano non disponibili vengono saltate come indicato da ParentRetryInterval. Se tutte le cache parent diventano non disponibili, la cache dei contenuti esegue il download o il caricamento direttamente da Apple finché una cache parent non sarà nuovamente disponibile. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | nessuno | |||||||||
ParentDownloadTimeout | Specifica il tempo, espresso in secondi, per consentire un download da una cache parent e mantenere lo stato inattivo prima di interrompere il download (e possibilmente riprovare). Bloccato tra 5-300 secondi (inclusi). | 60 | |||||||||
ParentRetryInterval | Specifica il tempo, espresso in secondi, per ignorare le cache parent dopo cinque errori del server o della rete consecutivi. Bloccato tra 30-3600 secondi (inclusi). | 900 | |||||||||
ParentSelectionPolicy | La politica da utilizzare quando si sceglie tra più di una cache parent configurata. Con ogni politica, le cache parent che sono temporaneamente non disponibili vengono saltate. Le politiche sono:
Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | round-robin | |||||||||
ParentUploadTimeout | Specifica il tempo di inattività massimo consentito, espresso in secondi, per il caricamento su una cache parent prima dell’interruzione. Bloccato tra 5-3600 secondi (inclusi). | 600 | |||||||||
PeerDownloadTimeout | Specifica il tempo, espresso in secondi, per consentire un download da una cache peer e mantenere lo stato inattivo prima di interrompere il download (e possibilmente riprovare). Compreso tra 5 e 300 secondi, inclusi. | 30 | |||||||||
PeerFilterRanges | Quando PeerFilterRanges è una matrice (di voci come quelle di ListenRanges), la cache dei contenuti filtra e ordina l’elenco dei peer in base agli intervalli nella matrice. La cache dei contenuti richiede solo i peer presenti in PeerFilterRanges. Il filtro e l’ordinamento vengono applicati prima di troncare l’elenco di peer nelle voci MaxPeersToQuery (se è presente questa impostazione). Quando PeerFilterRanges è una matrice vuota, la cache dei contenuti non richiederà alcun peer. Quando PeerFilterRanges è un valore booleano vero (True), la cache dei contenuti si comporta come descritto in precedenza, ma utilizza il valore ListenRanges anziché PeerFilterRanges. Quando PeerFilterRanges corrisponde a qualsiasi altro tipo o il valore è mancante, la cache dei contenuti non filtra né ordina l’elenco di peer prima di troncare l’elenco nelle voci MaxPeersToQuery. PeerFilterRanges ha effetto solo sull’elenco di altre cache dei contenuti che questa cache interroga per i contenuti e i download. Non ha effetto sulle richieste in ingresso per i contenuti da parte di nessun’altra cache dei contenuti. La sottochiave tipo non è più necessaria e viene ignorata se presente. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | nessuno | |||||||||
PeerListenRanges | Quando PeerListenRanges è una matrice di dizionari in cui ogni dizionario rappresenta un intervallo di indirizzi IP, la cache dei contenuti risponde correttamente solo alle richieste di cache peer delle cache dei contenuti con un indirizzo IP incluso in questa matrice di intervalli. Quando PeerListenRanges è una matrice vuota, la cache dei contenuti risponde con un errore alle richieste di cache di qualsiasi altra cache dei contenuti. Quando PeerListenRanges è un valore booleano vero (True), la cache dei contenuti utilizza il valore ListenRanges piuttosto che il valore PeerListenRanges per decidere di quali altre cache dei contenuti dovranno essere le richieste di cache cui rispondere correttamente. Quando PeerListenRanges corrisponde a qualsiasi altro tipo o il valore è mancante, la cache dei contenuti risponde correttamente alle richieste di cache di tutte le altre cache dei contenuti. PeerListenRanges ha effetto solo sulle cache dei contenuti alle cui richieste di cache risponde correttamente la cache dei contenuti. Non ha effetti sull’elenco di peer che questa cache dei contenuti interroga per i contenuti e i download di contenuti. Quando una cache dei contenuti risponde con un errore a una richiesta di cache, la cache richiedente contrassegna la cache che risponde come unfriendly e non tenta di effettuare di nuovo una richiesta alla stessa cache fino a che non è trascorso il PeerRetryInterval. La sottochiave tipo non è più necessaria e viene ignorata se presente. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | nessuno | |||||||||
PeerLocalSubnetsOnly | Indica se la cache dei contenuti deve convertirsi in peer solo con altre cache dei contenuti sulla stessa rete locale vicina, piuttosto che con cache dei contenuti che utilizzano lo stesso indirizzo IP pubblico del computer. Quando PeerLocalSubnetsOnly è un valore vero, la cache dei contenuti richiede e risponde correttamente solo a richieste peer delle cache dei contenuti sulla stessa rete locale vicina. Quando PeerLocalSubnetsOnly è un valore vero, esso annulla la configurazione di PeerFilterRanges e PeerListenRanges. Quando PeerLocalSubnetsOnly è falso, la cache dei contenuti si rimette a PeerFilterRanges e PeerListenRanges per configurare le restrizioni per il peering. Quando PeerLocalSubnetsOnly è vero e la rete cambia, le restrizioni ai peer per la rete locale vengono aggiornate in modo appropriato. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | Sì | |||||||||
PeerNotifyTimeout | Specifica l’intervallo di tempo, espresso in secondi, di attesa per le risposte dalle cache peer quando viene eseguito il ping all’avvio. Compreso tra 5 e 300 secondi, inclusi. | 30 | |||||||||
PeerQueryTimeout | Specifica il tempo di risposta, espresso in secondi, da parte delle cache peer quando vengono richieste informazioni sui contenuti nella loro cache. Compreso tra 1 e 60 secondi, inclusi. | 5 | |||||||||
PeerRetryInterval | Specifica il tempo, espresso in secondi, per ignorare le cache peer dopo tre richieste o notifiche consecutive non riuscite. Dopo aver superato l’intervallo di tempo per un nuovo tentativo, le cache peer verranno visualizzate nuovamente nell’elenco dei peer per richiedere i contenuti. Compreso tra 30 e 3600 secondi, inclusi. | 900 (secondi) | |||||||||
PersonalCacheLimit | Limita lo spazio di archiviazione utilizzato dalla cache dei contenuti per archiviare i dati di iCloud, in byte. Il valore di PersonalCacheLimit non deve superare quello di CacheLimit. | 0 (illimitati) | |||||||||
Porta | Specifica il numero di porta TCP su cui la cache dei contenuti accetta le richieste di caricamento o di download. | 0 (usa una porta random) | |||||||||
PruneAffinitiesAge | Le affinità utente più vecchie del numero di giorni specificato vengono rimosse dalla cache delle affinità automaticamente. Le affinità utente suggeriscono ai client la posizione in cui sono archiviati i relativi contenuti, migliorando così le prestazioni. L’eliminazione delle affinità utente non ha effetto sui contenuti archiviati in cache. Il valore minimo consentito è 7 giorni. | 30 (giorni) | |||||||||
PruneAffinitiesInterval | Specifica la frequenza, espressa in giorni, con cui la cache dei contenuti deve cercare e rimuovere le affinità utente più vecchie del valore in giorni di PruneAffinitiesAge. Le affinità utente, utilizzate solo da iCloud, suggeriscono ai client la posizione in cui sono archiviati i relativi contenuti, migliorando così le prestazioni. L’eliminazione delle affinità utente non ha effetto sui contenuti archiviati in cache. Il valore minimo consentito è un giorno. | 7 (giorni) | |||||||||
PruneAssetsAge | I contenuti che non sono stati richiesti in questo intervallo di giorni vengono rimossi automaticamente dalla cache dei contenuti. Il valore minimo consentito è 7 giorni. | 120 (giorni) | |||||||||
PruneAssetsInterval | Specifica la frequenza, espressa in giorni, con cui la cache dei contenuti deve cercare e rimuovere i contenuti più vecchi del valore in giorni di PruneAssetsAge. Il valore minimo consentito è un giorno. | 7 (giorni) | |||||||||
PublicRanges | Specifica gli intervalli di indirizzi IP pubblici che i server cloud devono utilizzare per abbinare i client alla cache dei contenuti. Puoi impostare questo valore anche nelle impostazioni della cache dei contenuti. | nessun default | |||||||||
ReservedVolumeSpace | Specifica il numero minimo di byte di spazio di archiviazione libero necessario per il volume che archivia i contenuti archiviati nella cache. | 2000000000 (2 GB) | |||||||||
TerminationTimeout | Specifica il tempo, espresso in secondi, per il quale la cache dei contenuti deve tentare di annullare la registrazione quando viene interrotta. L’annullamento della registrazione informa i client che la cache dei contenuti non è più disponibile, in maniera tale che non tentino più di utilizzarla (finché la cache dei contenuti non viene riavviata). Compreso tra 1 e 60 secondi, inclusi. | 10 (secondi) | |||||||||
Verbose | Quando il valore Verbose è impostato come vero, i log della cache dei contenuti conterranno maggiori informazioni sulle sue attività. L’aumento di quantità di dati che vengono registrati può ridurre le prestazioni. L’impostazione non è consigliata per l’utilizzo a lungo termine. Utilizza il comando Ad esempio: Puoi utilizzare anche l’app Console per visualizzare i log. | No |
Esempio di utilizzo della chiave ListenRanges
Puoi utilizzare la chiave ListenRanges per specificare le cache dei contenuti preferite in tipologie di rete avanzate dove vengono utilizzate varie cache dei contenuti associate allo stesso indirizzo IP pubblico.
Ad esempio:
caching1.betterbag.com utilizza la chiave ListenRanges per specificare un intervallo compreso tra 10.0.0.1 e 10.0.0.254 e tra 10.1.0.1 e 10.1.0.254 e imposta la chiave ListenRangesOnly su No.
caching2.betterbag.com utilizza la chiave ListenRanges per specificare un intervallo compreso tra 10.1.0.1 e 10.1.0.39 (tieni presente la sovrapposizione con il secondo intervallo di caching1) e imposta la chiave ListenRangesOnly su No.
Se un client il cui indirizzo IP è 10.0.0.10 richiede contenuti, questo è diretto al server caching1.
Se un client il cui indirizzo IP è 10.1.0.10 richiede contenuti, questo è diretto al server caching1 o caching2, selezionato casualmente.
Se un client il cui indirizzo IP è 10.2.0.10 richiede contenuti, questo è diretto al server caching1 o caching2, selezionato casualmente.
Se il server caching1 è spento o non presenta potenza sufficiente ma il server caching2 è disponibile, tutti i client sono diretti al server caching2.
Esempio di file plist
Questo è un esempio di file /Library/Preferences/com.apple.AssetCache.plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CacheLimit</key>
<!-- Set a CacheLimit of 200 GB -->
<integer>200000000000</integer>
<key>DataPath</key>
<string>/Volumes/BigVolume/Library/Application Support/Apple/AssetCache/Data</string>
<key>Interface</key>
<string>en1</string>
<key>ListenRanges</key>
<array>
<dict>
<key>type</key>
<string>IPv4</string>
<key>first</key>
<string>10.1.2.1</string>
<key>last</key>
<string>10.1.2.254</string>
</dict>
<dict>
<key>type</key>
<string>IPv6</string>
<key>first</key>
<string>2001:500:88:200::1</string>
<key>last</key>
<string>2001:500:88:200::99</string>
</dict>
</array>
<key>LogClientIdentity</key>
<string>true</string>
<key>Port</key>
<integer>12345</integer>
<key>ReservedVolumeSpace</key>
<!-- Set the ReservedVolumeSpace to 1 GB -->
<integer>1000000000</integer>
</dict>
</plist>