
Ajustes avançados do cache de conteúdo no Mac
Você pode usar os parâmetros avançados de configuração para ajustar o cache de conteúdo de acordo com a configuração da rede.
Você pode usar a linha de comando no Terminal ou modificar o valor das chaves no arquivo /Library/Preferences/com.apple.AssetCache.plist para definir os parâmetros avançados da configuração do cache de conteúdo. Para que algumas alterações surtam efeito, o cache de conteúdo deve ser interrompido e reiniciado.
Defina ajustes avançados
Para configurar alguns ajustes avançados do serviço de cache de conteúdo, você pode acessar Ajustes do Sistema (macOS 13 ou posterior) ou Preferências do Sistema (macOS 12.0.1 ou anterior) > Compartilhamento > Cache de Conteúdo. Mantenha a tecla Opção pressionada e selecione Opções Avançadas.
Você pode configurar ajustes ainda mais avançados por meio do app Terminal no Mac usando o comando defaults, seguido do comando sudo AssetCacheManagerUtil reloadSettings. Use o comando AssetCacheManagerUtil settings para visualizar os ajustes padrão (não avançado).
Você pode configurar tanto as chaves simples como as complexas com o comando defaults.
Por exemplo, para codificar por hard code o número da porta (50000) com um número de porta não dinâmico, o número da porta deve ser qualquer número entre 49192 e 65535; execute este comando como administrador:
$ sudo -u _assetcache defaults write /Library/Preferences/com.apple.AssetCache.plist Port -int 50000ListenRanges é uma chave complexa que envolve um conjunto de dicionários. Por exemplo, execute este comando como administrador para configurar dois intervalos de endereço IP para a chave 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; } )'Após usar o comando defaults, certifique-se de executar o comando a seguir para recarregar os ajustes do cache de conteúdo:
$ sudo AssetCacheManagerUtil reloadSettingsValores e chaves da plist de configuração de cache
Importante: não altere nenhum ajuste no arquivo com.apple.AssetCache.plist além dos descritos na tabela abaixo.
Uma chave pode ter um valor fixado entre dois valores. O valor da chave pode ser qualquer número entre o valor mais baixo e o mais alto. Se estiver abaixo do valor limite inferior, o limite inferior será usado. Se estiver acima do valor limite superior, o limite superior será usado. Por exemplo, o valor de PeerDownloadTimeout é fixado entre 5 e 300. Se for definido como 301 ou 1000, assumirá valor igual a 300. Se for definido como 4 ou -10, assumirá valor igual a 5.
Algumas alterações têm efeito quando você executa AssetCacheManagerUtil reloadSettings; outras alterações exigem que você pare e reinicie o cache de conteúdo. As únicas chaves compatíveis com reloadSettings são as que também podem ser definidas nas preferências Cache de Conteúdo (indicadas na tabela abaixo). Para definir valores nas preferências do Cache de Conteúdo:
macOS 13 ou posterior: escolha o menu Apple > Ajustes do Sistema > Geral > Compartilhamento > Cache de Conteúdo.
macOS 12.0.1 ou anterior: escolha o menu Apple > Preferências do Sistema > Compartilhamento > Cache de Conteúdo.
Chave | Descrição | Valor padrão | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
AgeForLowSpaceAlert | Quando ocorrer a depuração de cache de conteúdo por falta de espaço de armazenamento e o conteúdo depurado tiver sido adicionado ao cache de conteúdo a menos dias do que especificado, você receberá um alerta de pouco espaço. | 30 (dias) | |||||||||
AllowCacheDelete | Permite a depuração do cache de conteúdo automaticamente quando o computador precisar de espaço de armazenamento para outros apps. Para melhor eficácia de cache de conteúdo, desative esta configuração. | Sim | |||||||||
AllowImports | Permite solicitações de importação (upload). | Sim | |||||||||
AllowPersonalCaching | Permite o armazenamento em cache de dados do iCloud dos usuários. Ao menos uma das chaves Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | Sim | |||||||||
AllowSharedCaching | Controla a captura de conteúdo que não seja do iCloud, como atualizações de software e apps. Ao menos uma das chaves | Sim | |||||||||
AllowWirelessPortable | Permite que laptops Mac somente com conexões de rede Wi-Fi executem o cache de conteúdo. | Sim | |||||||||
CacheLimit | Especifica o número máximo de bytes de espaço de armazenamento usado para cache de conteúdo. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | 0 (ilimitado) | |||||||||
DatabaseUpdateInterval | Especifica a frequência em que o cache de conteúdo salva alterações no seu banco de dados de armazenamento. O aumento do intervalo eleva o risco de perda de conteúdos armazenados em cache após uma interrupção de energia. O máximo é de 3600 segundos (1 hora). Um intervalo de 0 significa que o banco de dados será sempre atualizado imediatamente, o que diminui o desempenho. | 5 (segundos) | |||||||||
DataPath | Especifica o caminho para o diretório usado para armazenar conteúdo em cache. A alteração desse ajuste manualmente não move o conteúdo armazenado em cache da antiga para a nova localização automaticamente. Para mover conteúdo automaticamente, use os ajustes de Cache de Conteúdo. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | /Biblioteca/Application Support/Apple/AssetCache/Data | |||||||||
DisplayAlerts | Exibe notificações para alertas de cache de conteúdo. Para melhor eficácia de cache de conteúdo, ative esta configuração. | Não | |||||||||
DownloadMinRate | Especifica o número mínimo de bytes por segundo que o cliente precisa manter durante o download de conteúdo do cache de conteúdo. O cache de conteúdo interrompe os downloads de dados com velocidade inferior a essa taxa. O valor fixado mínimo é de 1000 bytes por segundo. | 8000 (bytes por segundo) | |||||||||
DownloadTimeout | Especifica o intervalo, em segundos, em que um download para um cliente pode ficar ocioso até ser cancelado. O valor fixado mínimo é de 10 segundos. | 180 (segundos) | |||||||||
ImportMaxRate | Especifica o número máximo de bytes por segundo em que o cache de conteúdo receberá dados de cada cliente. Um valor de 0 indica uma quantidade ilimitada de bytes por segundo. | 0 (bytes por segundo) | |||||||||
ImportMinRate | Especifica o número mínimo de bytes por segundo que o cliente precisa manter durante a importação (envio) de um conteúdo. O cache de conteúdo interromperá importações que transfiram dados com velocidade inferior a essa taxa. O taxa mínima é de 100 bytes por segundo. | 2000 (bytes por segundo) | |||||||||
ImportRateAttenuation | Especifica a porcentagem de atenuação adicionada ao tempo de envio. O mínimo fixado é de 0% de atenuação. Valores muito altos ultrapassam o ImportTimeout e provocam falhas. | .20 (porcentagem) | |||||||||
ImportTimeout | Especifica o intervalo, em segundos, em que uma importação (envio) de um cliente pode ficar ociosa até ser cancelada. O mínimo é 10 segundos. | 300 (segundos) | |||||||||
Interface | Especifica o nome BSD de uma interface de rede a ser usada pelo cache de conteúdo. Por exemplo, en0. Além disso, sempre presta atenção na interface de loopback (localhost). | Presta atenção na interface selecionada | |||||||||
KeepAwake | Mantém o computador fora de repouso enquanto o cache de conteúdo está ativo. Para melhor disponibilidade de cache de conteúdo, ative esta configuração. Marque a caixa de seleção "Impedir repouso automático quando a tela estiver desligada" nos Economizador de Energia nos Ajustes do Sistema. | Não | |||||||||
ListenRanges | Matriz de dicionários que descrevem o intervalo de endereços IP do cliente a ser servido. Confira abaixo um exemplo usando a chave A subchave tipo não é mais necessária e é ignorada caso esteja presente. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | nenhum | |||||||||
ListenRangesOnly | Se a chave Se você quiser usar a chave Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | Não | |||||||||
ListenWithPeersAndParents | Indica se o cache de conteúdo faz o registro com a união das chaves Observe que a chave | O valor padrão depende do histórico do computador:
| |||||||||
LocalSubnetsOnly | Indica se o cache de conteúdo deve oferecer conteúdo apenas aos clientes da mesma rede local imediata do cache de conteúdo em vez de aos clientes em todas as redes locais acessíveis ao cache de conteúdo. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | Sim | |||||||||
LogClientIdentity | Determina se o cache de conteúdo deve registrar o endereço IP e o número da porta dos clientes que solicitam conteúdo. | Não | |||||||||
MaxConcurrentClients | Especifica o número máximo de clientes que um cache de conteúdo pode suportar. A Apple não garante que um cache de conteúdo possa atender a 3.400 clientes simultâneos. | 3400 | |||||||||
MaxParentDepth | Especifica o número máximo de vezes, em um único pedido, que um cache de conteúdo secundário envia um pedido para um cache de conteúdo principal. Solicitações longínquas demais (encadeamento longo demais) são forçadas para a origem em vez do cache de conteúdo principal. | 8 | |||||||||
MaxPeersToQuery | Especifica o número máximo de caches de conteúdo pares a solicitarem conteúdo. | 0 (ilimitado) | |||||||||
MetricsInterval | Especifica a frequência, em segundos, em que uma linha de métricas é adicionada ao banco de dados de métricas em /Library/Application Support/Apple/AssetCache/Metrics/Metrics.db.
Fixado entre 1 e 60 segundos, inclusive. Você pode visualizar essas métricas no painel Cache do Monitor de Atividade. | 60 (segundos) | |||||||||
MetricsMaxAge | Métricas mais antigas são removidas do banco de dados de métricas uma vez por dia. O valor fixado mínimo é de 30 dias. | 30 (dias) | |||||||||
OriginDownloadTimeout | Especifica o intervalo, em segundos, em que um download de um servidor da Apple pode ficar ocioso até ser cancelado (possivelmente tentando o download novamente). Fixado entre 5 e 300 segundos, inclusive. | 60 | |||||||||
OriginUploadTimeout | Especifica o intervalo, em segundos, em que um envio para um servidor de origem pode ficar ocioso até ser cancelado. Fixado entre 5 e 3600 segundos, inclusive. | 600 | |||||||||
Pais | Uma lista dos endereços IP locais de outros caches de conteúdo dos quais este cache deve baixar ou enviar conteúdo em vez de baixá-lo ou enviá-lo diretamente à Apple. Endereços inválidos e endereços de computadores que não são caches de conteúdo são ignorados. Caches principais que se tornam indisponíveis serão ignorados conforme o Se todos os caches de conteúdo principais ficarem indisponíveis, o cache de conteúdo baixa ou envia diretamente para a Apple, até que um cache de conteúdo principal fique disponível novamente. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | nenhum | |||||||||
ParentDownloadTimeout | Especifica o intervalo, em segundos, em que um download de um cache de conteúdo principal pode ficar ocioso até ser cancelado (possivelmente tentando o download novamente). Fixado entre 5 e 300 segundos, inclusive. | 60 | |||||||||
ParentRetryInterval | Especifica o tempo de espera, em segundos, até que caches de conteúdo principais sejam ignorados após terem acumulado cinco falhas de rede ou erros de servidor consecutivos. Fixado entre 30 e 3600 segundos, inclusive. | 900 | |||||||||
ParentSelectionPolicy | A política a ser usada ao escolher entre mais de um cache de conteúdo principal configurado. Com cada política, caches principais que estiverem indisponíveis temporariamente serão ignorados. As políticas são:
Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | round-robin | |||||||||
ParentUploadTimeout | Especifica o intervalo, em segundos, em que um envio para um cache de conteúdo principal pode ficar ocioso até ser cancelado. Fixado entre 5 e 3600 segundos, inclusive. | 600 | |||||||||
PeerDownloadTimeout | Especifica o intervalo, em segundos, em que um download de um cache de conteúdo par pode ficar ocioso até ser cancelado (possivelmente tentando o download novamente). Fixado entre 5 e 300 segundos, inclusive. | 30 | |||||||||
PeerFilterRanges | Quando O cache de conteúdo consulta apenas os pares que estão em Quando Quando Quando
A subchave tipo não é mais necessária e é ignorada caso esteja presente. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | nenhum | |||||||||
PeerListenRanges | Quando Quando Quando Quando
Quando um cache de conteúdo responde a uma consulta com um erro, o cache de conteúdo que fez a consulta marca o cache de conteúdo consultado como hostil e não tenta realizar a consulta novamente até que o valor de A subchave tipo não é mais necessária e é ignorada caso esteja presente. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | nenhum | |||||||||
PeerLocalSubnetsOnly | Indica se o cache de conteúdo deve ser apenas um par com outros caches de conteúdo da mesma rede local imediata, e não com caches de conteúdo de todas as redes que usam o mesmo endereço IP público que este computador. Quando o valor de Quando o valor de Quando o valor de Quando o valor de Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | Sim | |||||||||
PeerNotifyTimeout | Especifica o tempo de espera, em segundos, para a resposta dos caches de conteúdo pares após o ping de inicialização. Fixado entre 5 e 300 segundos, inclusive. | 30 | |||||||||
PeerQueryTimeout | Especifica o tempo de espera, em segundos, para a resposta dos caches de conteúdo pares quando consultados sobre os conteúdos em cache. Fixado entre 1 e 60 segundos, inclusive. | 5 | |||||||||
PeerRetryInterval | Especifica o tempo de espera, em segundos, até que os caches de conteúdo pares sejam ignorados após terem acumulado três falhas consecutivas de consulta ou notificação. Após o término do intervalo, os caches de conteúdo pares voltam para a lista de pares de consulta de conteúdo. Fixado entre 30 e 3600 segundos, inclusive. | 900 (segundos) | |||||||||
PersonalCacheLimit | Limita o espaço de armazenamento que o cache de conteúdo usa para dados do iCloud, em bytes. | 0 (ilimitado) | |||||||||
Port | Especifica o número da porta TCP na qual o cache de conteúdo aceita solicitações de envio ou transferência. | 0 (usa uma porta aleatória) | |||||||||
PruneAffinitiesAge | Afinidades de usuário mais antigas que esse número são removidas do cache de afinidades automaticamente. As afinidades de usuário fornecem dicas aos clientes, como, por exemplo, onde o conteúdo está armazenado, a fim de melhorar o desempenho. A redução das afinidades de usuário não tem nenhum efeito sobre os conteúdos em cache. O valor fixado mínimo é de sete dias. | 30 (dias) | |||||||||
PruneAffinitiesInterval | Especifica a frequência, em dias, em que o cache de conteúdo deve procurar e remover afinidades de usuário mais antigas que o número indicado em | 7 (dias) | |||||||||
PruneAssetsAge | O conteúdo que não for solicitado nesse número de dias será removido do cache de conteúdo automaticamente. O valor fixado mínimo é de sete dias. | 120 (dias) | |||||||||
PruneAssetsInterval | Especifica a frequência, em dias, em que o cache de conteúdo deve procurar e remover conteúdo mais antigo que o número de dias indicado em | 7 (dias) | |||||||||
PublicRanges | Especifica os intervalos de endereço IP público que os servidores de nuvem devem usar para corresponder os clientes aos caches de conteúdo. Também é possível definir esse valor nos ajustes de Cache de Conteúdo. | nenhum padrão | |||||||||
ReservedVolumeSpace | Especifica o número mínimo livre de armazenamento, em bytes, a ser mantido para o volume que armazena o conteúdo em cache. | 2000000000 (2 GB) | |||||||||
TerminationTimeout | Especifica o tempo, em segundos, em que o cache de conteúdo deve tentar cancelar o registro ao ser interrompido. O cancelamento do registro informa aos clientes que o cache de conteúdo não está mais disponível. Assim, eles não tentarão usá-lo novamente até que seja reiniciado. Fixado entre 1 e 60 segundos, inclusive. | 10 (segundos) | |||||||||
Verbose | Quando Use o comando Por exemplo: Também é possível usar o app Console para visualizar os registros. | Não | |||||||||
Exemplo da chave ListenRanges
Você pode usar a chave ListenRanges para especificar os caches de conteúdo preferidos em topologias de rede avançadas, onde vários servidores de cache coexistam sob um mesmo endereço IP público.
Por exemplo:
caching1.melardclothing.com usa a chave
ListenRangespara especificar um intervalo de 10.0.0.1 até 10.0.0.254 e de 10.1.0.1 até 10.1.0.254 e define a chaveListenRangesOnlycomo Não.caching2.melardclothing.com usa a chave
ListenRangespara especificar um intervalo de 10.1.0.1 até 10.1.0.39 (observe a sobreposição do segundo intervalo de caching1) e define a chaveListenRangesOnlycomo Não.Se um cliente com endereço IP 10.0.0.10 solicita um conteúdo, ele é direcionado ao caching1.
Se um cliente com endereço IP 10.1.0.10 solicita conteúdo, ele é direcionado ao caching1 ou caching2, selecionado aleatoriamente.
Se um cliente com endereço IP 10.2.0.10 solicita conteúdo, ele é direcionado ao caching1 ou caching2, selecionado aleatoriamente.
Se o caching1 estiver desligado ou sem uma fonte de alimentação, mas o caching2 permanecer disponível, todos os clientes serão direcionados ao caching2.
Exemplo de arquivo plist
A seguir, encontra-se um exemplo de arquivo /Library/Preferences/com.apple.AssetCache.plist file.
<?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>