Configurar ajustes avanzados del almacenamiento en caché de contenido en el Mac
Puedes usar parámetros de configuración avanzados para ajustar el almacenamiento en caché de contenido para la configuración de tu red.
Establece los parámetros de configuración avanzados para la caché de contenido usando la línea de comandos en Terminal o modificando el valor de las claves en el archivo /Librería/Preferences/com.apple.AssetCache.plist. Para que se apliquen algunos cambios, es necesario detener y reiniciar el almacenamiento en caché de contenido.
Usar Terminal para establecer parámetros de configuración avanzados
En la app Terminal del Mac, los parámetros de configuración avanzados se pueden definir con el comando defaults
, seguido del comando sudo AssetCacheManagerUtil reloadSettings
. Usa el comando AssetCacheManagerUtil settings
para ver la configuración estándar (no avanzada).
Para obtener más información sobre el comando AssetCacheManagerUtil
, consulta Gestionar el almacenamiento en caché de contenido desde la línea de comandos y la página “man” de “AssetCacheManagerUtil(8)”.
Puedes configurar claves tanto sencillas como complejas con el comando defaults
.
Por ejemplo, para definir la clave Interface
como en1, ejecuta este comando como administrador:
$ sudo -u _assetcache defaults write /Library/Preferences/com.apple.AssetCache.plist Interface -string en1
ListenRanges
es una clave compleja que toma una matriz de diccionarios. Por ejemplo, ejecuta este comando como administrador para configurar dos rangos de direcciones IP para la clave 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; } )'
Después de usar el comando defaults, recuerde ejecutar el siguiente comando para volver a cargar la configuración de la caché de contenido:
$ sudo AssetCacheManagerUtil reloadSettings
Para obtener más información sobre el comando defaults
, consulta la página “man” de “defaults(1)”.
Claves y valores plist de configuración de almacenamiento en caché
Importante: No cambies ningún ajuste en el archivo com.apple.AssetCache.plist aparte de los descritos en la tabla a continuación.
Una clave puede tener un valor restringido entre dos valores. El valor de la clave puede ser cualquier número comprendido entre el valor bajo y el alto. Si se ajusta por debajo del valor mínimo, se utilizará el valor mínimo. Si se ajusta por encima del valor máximo, se utilizará el valor máximo. Por ejemplo, PeerDownloadTimeout está restringido entre 5 y 300. Si se ajusta a 301 o 1000, se utilizará el valor 300. Si se ajusta a 4 o -10, se utilizará el valor 5.
Algunos cambios entran en vigor después de ejecutar AssetCacheManagerUtil reloadSettings
; otros requieren que te detengas y vuelvas a iniciar el almacenamiento en caché del contenido. Las únicas claves que admiten reloadSettings son las que también se pueden configurar en el panel de preferencias “Almacenamiento en caché de contenido” (indicado en la tabla a continuación). Para configurar valores en el panel de preferencias “Almacenamiento en caché de contenido”, selecciona menú Apple > Preferencias del Sistema, haz clic en Compartir y, finalmente, haz clic en “Almacenamiento en caché de contenido”.
Clave | Descripción | Valor por omisión | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AgeForLowSpaceAlert | Cuando se borra contenido de la caché de contenido porque queda poco espacio de disco y el contenido borrado se ha añadido a la caché de contenido hace menos días de los especificados aquí, recibirás una alerta de poco espacio. | 30 (días) | |||||||||
AllowCacheDelete | Permite que se borre contenido de la caché automáticamente si el ordenador necesita espacio de disco para otras apps. Desactiva esta función para contar con la mejor eficacia de almacenamiento de caché de contenido. | Sí | |||||||||
AllowImports | Permite solicitudes de importaciones (carga). | Sí | |||||||||
AllowPersonalCaching | Permite el almacenamiento en caché de los datos de iCloud de los usuarios. Al menos una de las claves de AllowPersonalCaching o AllowSharedCaching debe ser sí. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | Sí | |||||||||
AllowSharedCaching | Controla el almacenamiento en caché de contenido que no pertenece a iCloud, como las actualizaciones de software y las apps. Al menos una de las claves de AllowPersonalCaching o AllowSharedCaching debe ser sí. | Sí | |||||||||
AllowWirelessPortable | Permite que los Mac portátiles que solo tengan conexiones de red Wi-Fi ejecuten el almacenamiento en caché de contenido. | Sí | |||||||||
CacheLimit | El número máximo de bytes de espacio de disco que se utilizará para la caché de contenido. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | 0 (ilimitado) | |||||||||
DatabaseUpdateInterval | La frecuencia con la que la caché de contenido guarda los cambios en su base de datos en el disco. Si se aumenta el intervalo, el riesgo de perder contenido almacenado en caché tras un fallo eléctrico es mayor. El máximo es 3600 segundos (1 hora). Un intervalo de 0 significa que la base de datos se actualiza siempre de inmediato, lo cual reduce el rendimiento. | 5 (segundos) | |||||||||
DataPath | La ruta al directorio usado para almacenar el contenido en caché. Si se cambia este ajuste manualmente no se moverá automáticamente a la nueva ubicación el contenido almacenado en caché. Para mover el contenido automáticamente, usa el panel de preferencias “Almacenamiento en caché de contenido” (consulta Seleccionar un volumen para el almacenamiento en caché). También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | /Librería/Application Support/Apple/AssetCache/Data | |||||||||
DisplayAlerts | Visualiza las notificaciones de las alertas de almacenamiento en caché. Activa esta función para contar con la mejor eficacia de almacenamiento de caché de contenido. | No | |||||||||
DownloadMinRate | El número mínimo de bytes por segundo que los clientes deben sostener durante la descarga de contenido desde la caché de contenido. La caché de contenido detendrá las descargas que transfieran datos a una velocidad inferior a esta. El mínimo restringido es de 1000 bytes por segundo. | 8000 (bytes por segundo) | |||||||||
DownloadTimeout | El tiempo, en segundos, que se permite que una descarga esté activa desde un cliente antes de abandonar. El mínimo restringido es de 10 segundos. | 180 (segundos) | |||||||||
ImportMaxRate | El número máximo de bytes por segundo al que la caché de contenido recibe datos de cada cliente. Un valor de 0 indica un número ilimitado de bytes por segundo. | 0 (bytes por segundo) | |||||||||
ImportMinRate | El número mínimo de bytes por segundo que los clientes deben sostener durante la importación (carga) de contenido. La caché de contenido detendrá las importaciones que transfieran datos a una velocidad inferior a esta. La velocidad mínima es de 100 bytes por segundo. | 2000 (bytes por segundo) | |||||||||
ImportRateAttenuation | El porcentaje de atenuación añadido al tiempo de carga. El valor mínimo restringido es de un 0% de atenuación. Los valores demasiado elevados superarán el valor de ImportTimeout y producirán errores. | .20 (porcentaje) | |||||||||
ImportTimeout | El tiempo, en segundos, que se permite que esté inactiva una importación (carga) desde un cliente antes de abandonar. El mínimo es 10 segundos. | 300 (segundos) | |||||||||
Interface | El nombre BSD de una interfaz de red para ser utilizada por la caché de contenido. | Listen on all interfaces (Escuchar en todas las interfaces) | |||||||||
KeepAwake | Mantiene el ordenador activo mientras el almacenamiento en caché está activado. Para disfrutar de la mejor disponibilidad de almacenamiento en caché de contenido, activa este ajuste o selecciona el menú Apple > Preferencias del Sistema, haz clic en Economizador y, a continuación, selecciona la casilla “Impedir que el ordenador entre en reposo automáticamente cuando se apaga la pantalla”. | No | |||||||||
ListenRanges | Matriz de diccionarios que describen el intervalo de direcciones IP a servir. Consulta a continuación un ejemplo que usa la clave ListenRanges. La subclave de tipo ya no es necesaria y se ignora en caso de estar presente. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | ninguno | |||||||||
ListenRangesOnly | Si ListenRangesOnly se ajusta a “verdadero”, la caché de contenido proporciona contenido solo a los clientes en los intervalos especificados por la clave ListenRanges. Si deseas usar la clave ListenRangesOnly, también debes especificar la clave ListenRanges. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | No | |||||||||
ListenWithPeersAndParents | Indica si el almacenamiento en caché de contenido se registra con la unión de las claves ListenRanges, PeerListenRanges y Parents, o solo con la clave ListenRanges. Ten en cuenta que ListenRanges se podría generar automáticamente desde LocalSubnetsOnly y que PeerListenRanges se podría generar automáticamente desde PeerLocalSubnetsOnly. | El valor por omisión depende de la historia del ordenador:
| |||||||||
LocalSubnetsOnly | Indica si la caché de contenido debe ofrecer contenido únicamente a los clientes que se encuentren en la misma red local inmediata que la caché de contenido, en vez de a los clientes de todas las redes locales accesibles para la caché de contenido. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | Sí | |||||||||
LogClientIdentity | Determina si la caché de contenido debe registrar o no la dirección IP y el número de puerto de los clientes que solicitan contenido. | No | |||||||||
MaxConcurrentClients | Este límite tiene como finalidad evitar que la caché de contenido se quede sin descriptores de archivos. Apple no garantiza que una caché de contenido pueda alcanzar los 3400 clientes simultáneos. | 3400 | |||||||||
MaxParentDepth | El número de veces máximo, para una sola solicitud, que una caché de contenido secundaria reenviará la solicitud a una principal. Las solicitudes que sean demasiado profundas (la cadena de reenvío es demasiado larga) se obligan a ir al origen en lugar de hacerlo a una principal. | 8 | |||||||||
MaxPeersToQuery | El número máximo de cachés de contenido del mismo nivel a las que solicitar contenido. | 0 (ilimitado) | |||||||||
MetricsInterval | La frecuencia, en segundos, con que se añade una fila de valores métricos a la base de datos métricos en /Biblioteca/Application Support/Apple/AssetCache/Metrics/Metrics.db.
Restringido entre 1 y 60 segundos, ambos inclusive. Puedes ver estas métricas en el panel Caché de Monitor de Actividad. | 60 (segundos) | |||||||||
MetricsMaxAge | Las mediciones que sean más antiguas que este valor se eliminan de la base de datos de métricas, una vez al día. El mínimo restringido es de 30 días. | 30 (días) | |||||||||
OriginDownloadTimeout | El tiempo, en segundos, que se permite que esté inactiva una descarga desde los servidores de Apple antes de desistir (y, posiblemente, antes de volver a intentar la descarga). Restringido entre 5 y 300 segundos, ambos inclusive. | 60 | |||||||||
OriginUploadTimeout | El tiempo, en segundos, que se permite que esté inactiva una carga a un servidor de origen antes de abandonar. Restringido entre 5 y 3600 segundos, ambos inclusive. | 600 | |||||||||
ParentDownloadTimeout | El tiempo, en segundos, que se permite que esté inactiva una descarga desde una caché de contenido principal antes de desistir (y, posiblemente, volver a intentar la descarga). Restringido entre 5 y 300 segundos, incluidos. | 60 | |||||||||
ParentRetryInterval | El tiempo de espera, en segundos, durante el cual se van a pasar por alto las cachés de contenido principales cuando hayan acumulado cinco fallos de red o errores del servidor consecutivos. Restringido entre 30 y 3600 segundos, incluidos. | 900 | |||||||||
Principales | Una lista de las direcciones IP locales de otras cachés de contenido desde las cuales esta caché debe descargar o cargar contenido en lugar de hacerlo directamente desde Apple. Las direcciones no válidas y las de ordenadores que no sean cachés de contenido se pasarán por alto. Las cachés principales que dejen de estar disponibles se omitirán de acuerdo con ParentRetryInterval. Si todas las cachés de contenido principales dejan de estar disponibles, la caché de contenido descargará desde o cargará en Apple directamente hasta que vuelva a haber una disponible. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | ninguno | |||||||||
ParentSelectionPolicy | La política que se debe usar a la hora de seleccionar entre más de una caché de contenido principal configurada. Con cada política, se omitirán las cachés principales que dejan de estar disponibles temporalmente. Las políticas son:
También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | round-robin | |||||||||
ParentUploadTimeout | El tiempo, en segundos, que se permite que esté inactiva una carga a una caché de contenido principal antes de abandonar. Restringido entre 5 y 3600 segundos, incluidos. | 600 | |||||||||
PeerDownloadTimeout | El tiempo, en segundos, que se permite que esté inactiva una descarga desde una caché de contenido del mismo nivel antes de desistir (y, posiblemente, volver a intentar la descarga). Restringido entre 5 y 300 segundos, ambos inclusive. | 30 | |||||||||
PeerFilterRanges | Cuando PeerFilterRanges sea una matriz (de entradas como las de ListenRanges), la caché de contenido filtra y ordena su lista de cachés del mismo nivel según los intervalos de la matriz. La caché de contenido solo realiza las consultas a las cachés del mismo nivel que estén en PeerFilterRanges. El filtrado y la ordenación se aplican antes de truncar la lista de servidores del mismo nivel en las entradas de MaxPeersToQuery (si dicho ajuste está presente). Cuando PeerFilterRanges sea una matriz vacía, la caché de contenido no consulta a ninguna caché del mismo nivel. Cuando PeerFilterRanges tenga el valor booleano “true” (verdadero), la caché de contenido hace lo mismo que en el caso anterior, pero usa el valor de ListenRanges en lugar del valor de PeerFilterRanges. Cuando PeerFilterRanges sea de cualquier otro tipo o el valor no está presente, la caché de contenido ni filtra ni ordena su lista de cachés del mismo nivel antes de truncar la lista en las entradas de MaxPeersToQuery. PeerFilterRanges solo afecta a la lista de otras cachés de contenido a las que esta caché realiza consultas de contenido y descargas. No tiene efecto en las solicitudes entrantes de contenido de ninguna otra caché de contenido. La subclave de tipo ya no es necesaria y se ignora en caso de estar presente. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | ninguno | |||||||||
PeerListenRanges | Cuando PeerListenRanges sea una matriz de diccionarios en la que cada diccionario representa un intervalo de direcciones IP, la caché de contenido solo responde correctamente a las consultas de caché del mismo nivel procedentes de la cachés de contenido que tengan una dirección IP incluida en esta matriz de intervalos. Cuando PeerListenRanges sea una matriz vacía, la caché de contenido responde con un error a las consultas de caché procedentes de cualquier otra caché de contenido. Cuando PeerListenRanges tenga el valor booleano “true” (verdadero), la caché de contenido utiliza el valor ListenRanges en lugar del valor PeerListenRanges para decidir de qué otras cachés de contenido responden las consultas de caché. Cuando PeerListenRanges sea de cualquier otro tipo o el valor no está presente, la caché de contenido responderá correctamente a las consultas de caché procedentes de todas las demás cachés de contenido. PeerListenRanges solo afecta a las cachés de contenido de las que esta caché de contenido responderá correctamente a las consultas de caché. No tiene efecto en la lista de cachés del mismo nivel a las que esta caché de contenido consultará por contenido y de las que lo descargará. Cuando una caché de contenido responde con un error a una consulta de caché, la caché de contenido que realiza la consulta marca la caché de contenido que responde como “no compatible”, y no intenta consultarla de nuevo hasta que haya transcurrido el intervalo PeerRetryInterval. La subclave de tipo ya no es necesaria y se ignora en caso de estar presente. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | ninguno | |||||||||
PeerLocalSubnetsOnly | Indica si la caché de contenido debe considerar del mismo nivel a otras cachés de contenido de la misma red local inmediata, en vez de a las cachés de contenido que utilicen la misma dirección IP pública que este ordenador. Cuando PeerLocalSubnetsOnly tenga el valor “true” (verdadero), la caché de contenido solo consultará y responderá correctamente a las consultas de cachés del mismo nivel procedentes de cachés de contenido que se encuentren en la misma red local inmediata. Cuando el valor de PeerLocalSubnetsOnly sea “true” (verdadero), sustituirá la configuración de PeerFilterRanges y PeerListenRanges. Cuando el valor de PeerLocalSubnetsOnly sea falso, la caché de contenido deriva a PeerFilterRanges y PeerListenRanges para configurar las restricciones de pares. Cuando el valor de PeerLocalSubnetsOnly sea “true” (verdadero) y la red cambie, las restricciones de interacción de la red local se actualiza según corresponda. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | Sí | |||||||||
PeerNotifyTimeout | Cuánto tiempo, en segundos, esperar respuestas de cachés de contenido del mismo nivel al hacerles ping en el arranque. Restringido entre 5 y 300 segundos, ambos inclusive. | 30 | |||||||||
PeerQueryTimeout | El tiempo de espera, en segundos, para que las caché de contenido del mismo nivel respondan cuando se les consulte sobre el contenido en sus cachés. Restringido entre 1 y 60 segundos, ambos inclusive. | 5 | |||||||||
PeerRetryInterval | El tiempo de espera, en segundos, para ignorar a las cachés de contenido del mismo nivel cuando hayan acumulado tres notificaciones o consultas fallidas consecutivas. Cuando haya transcurrido el intervalo de tiempo para el reintento, se restaurarán en la lista de cachés del mismo nivel para realizar consultas de contenido. Restringido entre 30 y 3600 segundos, ambos inclusive. | 900 (segundos) | |||||||||
PersonalCacheLimit | Limite la cantidad de espacio de disco (en bytes) que utiliza la caché de contenido para los datos de iCloud almacenados en caché. El valor de PersonalCacheLimit no debe superar el valor de CacheLimit. | 0 (ilimitado) | |||||||||
Port (Puerto) | El número de puerto TCP en el que la caché de contenido acepta solicitudes de cargas o descargas. | 0 (usar un puerto aleatorio) | |||||||||
PruneAffinitiesAge | Las afinidades de usuario que tengan más días de los especificados se eliminan automáticamente de la caché de afinidades. Las afinidades de usuario proporcionan información a los clientes sobre el lugar de almacenamiento en caché de su contenido a fin de mejorar el rendimiento. La eliminación de afinidades de usuarios no afecta al contenido almacenado en caché. El mínimo restringido es de 7 días. | 30 (días) | |||||||||
PruneAffinitiesInterval | Frecuencia, en días, con que la caché de contenido debe buscar y eliminar afinidades de usuarios que tengan más días que PruneAffinitiesAge. Las afinidades de usuario, que solo utiliza iCloud, proporcionan información a los clientes sobre el lugar de almacenamiento en caché de su contenido a fin de mejorar el rendimiento. La eliminación de afinidades de usuarios no afecta al contenido almacenado en caché. El mínimo restringido es de 1 día. | 7 (días) | |||||||||
PruneAssetsAge | El contenido no solicitado durante este número de días se elimina automáticamente de la caché de contenido. El mínimo restringido es de 7 días. | 120 (días) | |||||||||
PruneAssetsInterval | Frecuencia, en días, con que la caché de contenido debe buscar y eliminar contenido que tenga más días que PruneAssetsAge. El mínimo restringido es de 1 día. | 7 (días) | |||||||||
PublicRanges | Intervalos de direcciones IP públicas que deben utilizar los servidores de nube para asociar los clientes con las cachés de contenido. También puedes configurar este valor en el panel de preferencias “Almacenamiento en caché de contenido”. | no es el valor por omisión | |||||||||
ReservedVolumeSpace | El número mínimo de bytes de espacio de disco libre que se tienen que dejar para el volumen que guarda el contenido almacenados en caché. | 2000000000 (2 GB) | |||||||||
TerminationTimeout | El tiempo, en segundos, durante el que la caché de contenido debe intentar anular el registro cuando se está deteniendo. Al anular el registro se informa a los clientes de que la caché de contenido ya no está disponible para que no intenten utilizarlo otra vez (o hasta que la caché de contenido se vuelva a iniciar). Restringido entre 1 y 60 segundos, ambos inclusive. | 10 (segundos) | |||||||||
Verbose (traza) | Si Verbose=true, la caché de contenido registra un poco más de información sobre sus actividades. El registro incrementado puede reducir el rendimiento. Este ajuste no se recomienda para su uso a largo plazo. Utiliza el comando Por ejemplo: También puedes utilizar la app Consola para ver los registros. | No |
Ejemplo de tecla ListenRanges
Puedes utilizar la clave ListenRanges para especificar las cachés de contenido preferidas en topologías de red avanzadas, en las que se utilizan varias cachés de contenido con la misma dirección IP pública.
Por ejemplo:
caching1.example.com usa la clave ListenRanges para especificar un intervalo desde 10.0.0.1 a 10.0.0.254 y desde 10.1.0.1 a 10.1.0.254 y define la clave ListenRangesOnly en No.
caching2.example.com usa la clave ListenRanges para especificar un intervalo de 10.1.0.1 a 10.1.0.39 (observa el solapamiento con el segundo intervalo de caching1) y define la clave ListenRangesOnly en No.
Si un cliente cuya dirección IP es 10.0.0.10 solicita contenido, se le dirige a caching1.
Si un cliente cuya dirección IP es 10.1.0.10 solicita contenido, se le dirige a caching1 o a caching2, seleccionadas de forma aleatoria.
Si un cliente cuya dirección IP es 10.2.0.10 solicita contenido, se le dirige a caching1 o a caching2, seleccionadas de forma aleatoria.
Si caching1 se ha apagado o sufre una pérdida de alimentación eléctrica, pero caching2 sigue disponible, se dirige a todos los clientes a caching2.
Archivo plist de ejemplo
A continuación se muestra un archivo /Librería/Preferences/com.apple.AssetCache.plist de ejemplo.
<?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/BigDisk/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>