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 50000

ListenRanges é 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 reloadSettings

Valores 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 AllowPersonalCaching ou AllowSharedCaching precisa ser sim.

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 AllowPersonalCaching ou AllowSharedCaching precisa ser sim.

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 ListenRanges.

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 ListenRangesOnly estiver definida como VERDADEIRO, o cache de conteúdo fornece conteúdo apenas aos clientes nos intervalos especificados pela chave ListenRanges.

Se você quiser usar a chave ListenRangesOnly, também é necessário especificar a chave ListenRanges.

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 ListenRanges, PeerListenRanges e Parents ou apenas com a chave ListenRanges.

Observe que a chave ListenRanges poderia ser gerada automaticamente a partir de LocalSubnetsOnly, e a chave PeerListenRanges poderia ser gerada automaticamente a partir de PeerLocalSubnetsOnly.

O valor padrão depende do histórico do computador:

  • Se o Mac foi atualizado para o macOS 10.13.4 a partir de uma versão anterior do macOS, o valor padrão é Não.

  • Se o Mac tem uma instalação nova do macOS 10.13.4 ou posterior, o valor padrão é Sim.

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.

  • Se valor > 1, as métricas são adicionadas ao final de cada intervalo. Por exemplo, em 60 segundos, as métricas são adicionadas ao final de cada minuto.

  • Limpar o cache limpa a linha atual de métricas (se houver).

  • Nenhuma métrica é adicionada quando o cache de conteúdo está ocioso.

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 ParentRetryInterval.

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:

  • primeiro disponível: Usar sempre o primeiro principal da lista Principais que estiver disponível. Isso é útil para designar principal permanente, secundário e subsequentes.

  • url-path-hash: criptografa a parte do caminho do URL solicitado de modo que o mesmo principal seja usado sempre para o mesmo URL. Isso é útil para maximizar o tamanho dos caches combinados dos principais.

  • aleatório: escolhe um principal aleatoriamente. Isso é útil para equilibrar a carga.

  • round robin: alterna entre os principais em ordem. Isso é útil para equilibrar a carga.

  • anotação disponível: começando com o primeiro principal da lista Principais, use sempre o primeiro principal que estiver disponível. Continue usando esse principal até que ele se torne indisponível, depois passe para o seguinte. Isso é útil para designar principal flutuante, secundário e subsequentes.

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 PeerFilterRanges é uma matriz (de entradas como as de ListenRanges), os intervalos dessa matriz servem de base para que o cache de conteúdo filtre e ordene a lista de pares.

O cache de conteúdo consulta apenas os pares que estão em PeerFilterRanges. A filtragem e ordenação são aplicadas antes da lista de pares ser truncada nas entradas de MaxPeersToQuery (se tal ajuste estiver presente).

Quando PeerFilterRanges é uma matriz vazia, o cache de conteúdo não consultará nenhum par.

Quando PeerFilterRanges assume o valor VERDADEIRO, o cache de conteúdo tem o mesmo comportamento descrito acima, mas usa o valor de ListenRanges em vez do valor de PeerFilterRanges.

Quando PeerFilterRanges assume qualquer outro tipo ou o valor não é encontrado, o cache de conteúdo não filtra nem ordena a lista de pares antes de truncar a lista de entradas em MaxPeersToQuery.

PeerFilterRanges afeta apenas a lista de outros caches de conteúdo nos quais esse cache de conteúdo busca por conteúdo e transferências. Ele não tem efeito sobre a entrada de solicitações de conteúdo provenientes de qualquer outro cache de conteúdo.

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 PeerListenRanges é uma matriz de dicionários, em que cada dicionário representa um intervalo de endereço IP, o cache de conteúdo responde corretamente apenas às consultas sobre cache de pares provenientes de caches de conteúdo com um endereço IP contido nessa matriz de intervalos.

Quando PeerListenRanges é uma matriz vazia, o cache de conteúdo responde às consultas sobre cache de qualquer outro cache de conteúdo com um erro.

Quando PeerListenRanges é definido como VERDADEIRO, o cache de conteúdo usa o valor de ListenRanges em vez do valor de PeerListenRanges para decidir a quais outros caches de conteúdo ele responde corretamente às consultas de cache.

Quando PeerListenRanges é de qualquer outro tipo ou o valor não é encontrado, o cache de conteúdo responde corretamente às consultas de cache de todos os outros caches de conteúdo.

PeerListenRanges afeta apenas os caches de conteúdo aos quais esse cache de conteúdo responde corretamente a consultas de cache. Ele não tem nenhum efeito na lista de pares que esse cache de conteúdo consulta em busca de conteúdo e para baixar conteúdo.

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 PeerRetryInterval tenha decorrido.

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 PeerLocalSubnetsOnly é definido como VERDADEIRO, o cache de conteúdo consulta e responde com êxito apenas a caches de conteúdo que estejam na mesma rede local imediata.

Quando o valor de PeerLocalSubnetsOnly é definido como VERDADEIRO, ele sobrescreve a configuração de PeerFilterRanges e PeerListenRanges.

Quando o valor de PeerLocalSubnetsOnly é definido como FALSO, o cache de conteúdo transfere a configuração das restrições de pares para PeerFilterRanges e PeerListenRanges.

Quando o valor de PeerLocalSubnetsOnly é definido como VERDADEIRO e a rede é alterada, as restrições de pares da rede local são atualizadas.

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. PersonalCacheLimit não pode ser superior a CacheLimit.

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 PruneAffinitiesAge. Para melhorar o desempenho, as afinidades de usuário, usadas apenas pelo iCloud, fornecem dicas aos clientes, como, por exemplo, onde o conteúdo está armazenado. 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 um dia.

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 PruneAssetsAge. O valor fixado mínimo é de um dia.

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 Verbose é definido como VERDADEIRO, o cache de conteúdo registra algumas informações a mais sobre as atividades. O aumento do registro pode reduzir o desempenho. Esse ajuste não é recomendado para o uso de longo prazo.

Use o comando log no app Terminal para visualizar registros de cache de conteúdo. Consulte página “man” para log. O cache de conteúdo faz registros no subsistema com.apple.AssetCache.

Por exemplo: log show --predicate 'subsystem == "com.apple.AssetCache"'

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 ListenRanges para 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 chave ListenRangesOnly como Não.

  • caching2.melardclothing.com usa a chave ListenRanges para 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 chave ListenRangesOnly como 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>
Data da publicação: 27 de outubro de 2021
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Ajudou?
Limite de caracteres: 250
O número máximo de caracteres é 250.
Agradecemos seu comentário.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.