Comment obtenir des informations sur la mise en cache de contenu de macOS ?

Nicolas Furno |

Vous ne le savez peut-être pas, mais si vous avez au moins un Mac chez vous, vous pouvez l’utiliser pour accélérer les mises à jour de tous vos autres appareils Apple en les distribuant sur le réseau local au lieu de les télécharger depuis le serveurs d’Apple. Et cela ne concerne pas seulement les mises à jour d’iOS ou de macOS, mais aussi l’accès aux contenus stockés sur votre compte iCloud, les sauvegardes des appareils iOS sur iCloud et encore le chargement de ressources proposées sur les boutiques d’Apple.

Avec macOS High Sierra, il suffit de cocher une case dans les Préférences système1 pour activer la mise en cache du contenu, une fonction réservée pendant longtemps aux professionnels qui disposaient de macOS Server. Nous avions consacré un article de présentation à cette fonction à l’automne dernier, lors de la sortie du nouveau système. Nous avions expliqué comment l’activer et le configurer, et nous avions listé tous les contenus pris en charge.

Cocher cette case dans les Préférences Système suffit à activer la mise en cache du contenu de macOS.

Il restait une question : comment obtenir des informations sur ce qui est mis en cache et ce qui est distribué sur le réseau local au lieu d’être téléchargé depuis des serveurs distants ? Fidèle à son habitude, Apple ne donne pas énormément d’informations, tout est censé fonctionner à l’arrière-plan automatiquement, sans que vous n’ayez à intervenir. Si vous voulez en savoir plus et vérifier que tout fonctionne normalement, il y a malgré tout deux informations que vous pouvez facilement obtenir.

Quelle taille occupe le contenu mis en cache ?

Pour commencer, la taille du cache, c'est-à-dire le poids total des fichiers mis en cache par macOS et qui seront disponibles sur le réseau local pour tous les appareils qui s’y connectent. Pour connaître cette information, le plus simple est d’ouvrir les Préférences Système, puis le panneau de partage pour accéder aux réglages de la mise en cache de contenu. Cliquez sur le bouton « Options… » en bas à droite de la fenêtre et vous obtiendrez immédiatement la taille occupée par le cache.

Pour connaître la taille du cache de macOS, le plus simple est de passer par les Préférences système. À noter le bouton « Réinitialiser… » qui permet de vider le cache et de repartir de zéro.

C’est un point intéressant à surveiller au début, pour savoir combien est-ce que le cache de macOS va utiliser. Par défaut, il n’y a aucune limite, si ce n’est celle du volume de stockage du Mac, mais cela veut dire que si le cache se remplit trop rapidement, vous aurez un SSD ou un disque dur saturé tout aussi vite.

La taille du cache dépendra d’un grand nombre de facteurs, le plus évident étant le nombre d’appareils compatibles qui se connecteront au réseau local. Si vous l’utilisez uniquement pour un iPhone et un iPad, votre cache grossira plus lentement que si vous avez trois ou quatre Mac, une dizaine d’appareils iOS et quelques Apple TV, par exemple. À la rédaction, le cache de macOS est activé depuis la sortie de High Sierra et il occupe actuellement près de 880 Go. Dans mon cas, deux jours après avoir activé le cache, il occupait près de 6 Go de stockage, sachant qu’il y a eu une vague de bêtas d’iOS dans ces deux jours.

Une bonne idée peut être d’activer la mise en cache, d’attendre quelques jours (une semaine, par exemple) et de regarder la taille occupée. En fonction de ce paramètre et surtout de l’espace restant sur le volume de stockage de votre Mac, vous pouvez choisir de restreindre davantage le cache ou au contraire de lui laisser plus de place. Naturellement, quand la limite est atteinte, macOS se chargera de supprimer des éléments du cache pour en ajouter d’autres, vous n’avez pas besoin d’intervenir. Même si vous pouvez, si vous le souhaitez, vider totalement le cache existant et repartir de zéro grâce au bouton de réinitialisation affiché dans ces réglages.

Notez aussi que macOS permet de déplacer le cache, même quand il existe déjà. C’est une option pratique si vous voulez commencer avec un petit SSD, par exemple celui d’un Mac portable, et que vous souhaitez ensuite augmenter la taille du cache en utilisant un disque dur externe. Vous pouvez utiliser un volume de stockage présent dans le Mac, relié directement à l’ordinateur, mais aussi un volume distant présent sur le réseau local. Cette dernière option est particulièrement utile pour exploiter un NAS.

macOS n’affiche pas d’option pour choisir un emplacement s’il n’y a qu’un seul volume de stockage disponible, comme c’est le cas sur ce MacBook Pro.

Comme souvent, vous pouvez obtenir encore plus de détails en passant par le terminal de macOS plutôt que par l’interface. Saisissez cette ligne de commande pour avoir un statut détaillé sur l’état du cache de macOS High Sierra :

AssetCacheManagerUtil status
Parmi les informations données par la ligne de commande, on retrouve la taille actuelle du cache (ligne « CacheUsed »), en octets.

Qu’est-ce qui est distribué par le cache de macOS ?

Apple liste sur cette page de support tous les contenus susceptibles d’être mis en cache par macOS High Sierra. Pour résumer, il y a trois sources principales :

  • Serveurs Apple : les mises à jour des systèmes d’exploitation (iOS, macOS, tvOS et watchOS), les autres logiciels distribués directement et tous les contenus qui sont téléchargés sans passer par les boutiques2 ;
  • Boutiques : les apps et mises à jour d’apps de l’App Store et du Mac App Store, tous les contenus de l’iBooks Store et les ressources à la demande pour les apps iOS et tvOS ;
  • iCloud : photos iCloud, tout le contenu d’iCloud Drive et sauvegardes iCloud pour les appareils iOS.

Par défaut, tous ces contenus seront mis en cache par macOS, mais un réglage dans les Préférences Système permet de restreindre le système. Choisissez l’option « Contenu iCloud uniquement » pour ne pas stocker de mises à jour ou d’apps de l’App Store ; l’option « Contenu partagé uniquement » fait l’inverse, le contenu iCloud n'est pas mis en cache, seul ce qui provient des boutiques et des serveurs de mises à jour est stocké.

Dans tous les cas, vous voulez peut-être savoir ce qui est contenu dans votre cache. Là aussi, Apple a choisi d’afficher le minimum d’informations dans l’interface de macOS, même s’il existe une interface qui affiche la quantité de données stockées et diffusées par le cache du Mac. Vous la trouverez dans le Moniteur d’activité, un utilitaire qui sert à la base à lister tous les processus et leur utilisation du processeur, de la mémoire vive ou encore de la connexion internet et du volume de stockage. Avec macOS High Sierra, un onglet a été ajouté pour le cache sur les Mac où il est activé.

L’onglet dédié au cache de macOS dans le Moniteur d’activité.

Cet onglet affiche la quantité de données diffusées sur le réseau local sur la dernière heure, les dernières 24 heures, les sept et trente derniers jours. En bas de la fenêtre, un graphique représente l’information de manière visuelle, et vous aurez aussi les valeurs précises pour chaque période dans la partie haute. Si vous utilisez un système de cache simple, avec un seul Mac sur le réseau qui se charge de tout, vous aurez une partie des informations qui sera grisée et beaucoup de doublons. C’est normal et vous pouvez vous concentrer sur la première ligne, celle dédiée aux « Données fournies ».

Le principal intérêt de cette interface est de vérifier que le cache fonctionne bien au quotidien, c'est-à-dire qu’il fournit bien des données aux clients sur le réseau local. Vous n’en saurez pas beaucoup plus, ni sur le type de contenu qui a été distribué, ni sur sa nature exacte. Si vous voulez vérifier que tout fonctionne correctement, vous pouvez, par exemple, accéder à un contenu stocké sur iCloud sur un appareil iOS. Visionnez quelques photos qui ne sont pas chargées en local, ou bien ouvrez des documents iCloud qui ne sont pas stockés dans la mémoire de l’appareil et vous devriez voir les compteurs augmenter.

Le Moniteur d’activité montre aussi la quantité de « données perdues », des fichiers qui ont été supprimés du cache. Il peut y avoir deux raisons pour expliquer cela : soit la limite définie lors de la création du cache est atteinte et il faut faire de la place pour de nouveaux fichiers ; soit parce que les fichiers mis en cache ont expiré. En effet, les données sont régulièrement purgées, par défaut si elles n’ont pas été utilisées pendant un mois.

Vous n’aurez rien de plus par l’interface, mais si le terminal ne vous fait pas peur, vous pouvez consulter les logs du cache de contenus pour en savoir un petit peu plus. Ne comptez pas sur une liste de fichiers en clair, toutes les ressources sont associées à ces noms de code impossibles à déchiffrer, mais c’est la preuve la plus directe du bon fonctionnement du cache. Voici la commande à saisir dans le terminal :

log stream --predicate 'subsystem == "com.apple.AssetCache"'
Extrait du fichier de log généré par le moteur de cache de contenu de macOS High Sierra .

À noter que vous aurez quasiment le même résultat en ouvrant la Console de macOS et en faisant une recherche sur « AssetCache » pour filtrer les messages qui s’y affichent. Et dans un cas, comme dans l’autre, cela est surtout utile pour vérifier qu’il se passe bien quelque chose, pas vraiment pour connaître le contenu précis du cache.

Que faire si le cache ne semble pas fonctionner ?

Pour finir, que faire si vous avez l’impression que le cache de contenus de macOS High Sierra ne fonctionne pas ? Si vous ne voyez aucune valeur changer dans le Moniteur d’activité et si les logs n’affichent rien, voici quelques pistes pour essayer de débloquer la situation.

Première étape, vérifier que le cache de contenus est toujours actif. Dans les Préférences système, ouvrez à nouveau le panneau de partage et vérifiez que la pastille est verte, indiquant que tout fonctionne normalement. Si elle est gris clair, c’est que le cache est désactivé ; en gris foncé, la fonction est temporairement inactive pendant un déplacement des données ; enfin, une pastille jaune indique que le processus est inactif, ou bien qu’il démarre. Si vous avez du jaune, c’est probablement qu’il y a un souci quelque part.

Les trois états principaux de la mise en cache de contenu de macOS.

En cas de problème, essayez d’arrêter et de relancer la mise en cache, de redémarrer macOS et de vérifier si vous êtes bien à jour. Au-delà, vous devrez sans doute analyser de plus près les logs pour trouver une explication. Si vous avez déplacé le cache récemment, il est possible que le transfert ait échoué et vous trouverez quelques explications et aides dans cet article.

Si la pastille est bien verte et que le cache ne fonctionne toujours pas, voici quelques points qui pourront vous aider :

  • Avez-vous pensé à redémarrer les appareils après avoir activé le cache ? Même si cela doit finir par fonctionner sans, c’est le meilleur moyen de forcer les appareils à se connecter au cache de votre Mac.
  • Votre réseau local est-il compatible ? Il y a peu de risques que ce ne soit pas le cas, mais le système repose sur un réseau local qui exploite des adresses IP conformes à la norme RFC 1918. Sauf si vous avez bricolé votre propre solution maison, cela devrait être le cas. Au passage, la mise en cache de macOS est très simple par défaut, mais elle peut être aussi sophistiquée, avec plusieurs serveurs qui collaborent. Pour aller plus loin, cliquez sur le bouton « Options… » avec la touche pour dévoiler les options avancées.
  • Le Mac qui fait office de serveur reste-t-il toujours accessible ? S’il est éteint ou même en veille3, le serveur de cache ne fonctionnera plus et vous ne bénéficierez plus de ses avantages. C’est pourquoi il est recommandé d’utiliser un ordinateur fixe4 et de l’empêcher de suspendre son activité. Pour cela, ouvrez les Préférences système, puis le panneau Économiseur d’énergie et cochez la première case.
Pour que la mise en cache de contenu fonctionne correctement, cette case doit être cochée. Le Mac ne sera plus jamais en veille, mais vous pouvez en revanche éteindre son écran après quelques minutes sans problème.

  1. Dans les Préférences système, ouvrez le panneau dédié au Partage et cochez l’option « Mise en cache de contenu » dans la barre latérale de gauche. Cela suffit à activer le cache, même s’il peut être nécessaire de regarder les options pour limiter sa taille ou changer son emplacement. ↩︎

  2. Les dictionnaires de langue, le contenu GarageBand sur macOS, les voix haute-qualité de Siri, etc. ↩︎

  3. La fonction Power Nap ne permet pas (encore ?) de laisser la mise en cache de contenus en fonction. ↩︎

  4. Un Mac mini peut largement suffire. À défaut, un portable peut très bien être recyclé en serveur. Mieux vaut le relier en Ethernet qu’en Wi-Fi, si c’est possible. ↩︎

avatar Gregoryen | 

Très bon article !

Merci car cette mise en cache est un mystère et vous éclaircissez cela.

Je l’ai mis en favori et je vais même l’imprimer pour le mettre dans mon cahier spécial.

avatar C1rc3@0rc | 

@Gregoryen

L'article est effectivement bienvenu est merite des encouragements a continuer sur cette voie!

Mais il met aussi en lumiere un probleme d'Apple depuis quelques annees: la complication.

Cette question de la gestion de la mise en cache pour assurer le deploiement de mise a jour est une absurdité qui resulte de la mise en captivité du client et de l'obsolescence programmée.

On a la un mecanisme ubuesque qui n'a aucune justification.
Mettre a jours un systeme c'est simple: on va telecharger la mise-a-jour et on l'applique en local, a partir du reseau ou d'une cle USB (ou d'un DVD...)

Une fois telechargé le soft reste disponible pour etre appliqué sur n machine ou sur la meme machine mais a n moments possible...

Aujourd'hui, a moins de se compliquer la tache et se mettre en position d'administrateur, installer MacOS demande de se connecter au cloud, precharger l'OS, lancer l'installation qui va aller chercher pendant son execution des patch, puis lancer une seconde mise a jour qui va aller chercher ce qui n'a pas ete deja pachté lors de l'installation.
Si on fait une "clean install" une a 2 fois par an, ça veut dire qu'il faut re-telecharger a chaque fois l'ensemble des soft et patch... s'ils sont encore disponibles...

On peut faire encore moins efficace mais ça va demander beaucoup de boulot..

Apres les defenseurs d'Apple et du modele de la mise en captivité de l'utilisateur vont argumenter que l'installation de l'OS ça ce fait une fois, qu'apres c'est des mises a jour ponctuelle et que tres peu de monde a plusieurs fois le meme appareil.

Ce n'est pas totalement faux, mais d'une part ça ne justifie en rien le recours au cloud et l'abandon du telechargement et installation directe, et ça ne justifie pas non plus de defavoriser les groupes (parcs familiaux, associations, entreprises,...) qui voient alors passer par des procedures compliquées... alors que la meme procedure simple satisfait tout le monde.

avatar joinman | 

Par contre si tout se fait en automatique, je pense que les terminaux trouvent le « serveur Mac » via le protocole bonjour ou tout autre protocole fonctionnant dans un domaine de broadcast unique. Donc en d’autres termes, si on a plusieurs subnets chez soi, ça ne doit pas fonctionner. Pouvez confirmer SVP ?
Dommage qu’on ne puisse pas saisir dans chaque terminal « client » l’adresse IP du serveur de MAJ...

avatar MacTHEgenius | 

@joinman

Le serveur de cache ne fonctionne que dans le subnet (exemple 10.0.0.0/23) où il a acquis son adresse IP.

Exemple:
J’ai moi-même un Mac mini qui me sert de serveur, mais avec macOS Sierra et macOS Server (ça revient au même). Ce serveur est connecté au réseau principal (10.0.1.x) et n’est qu’accessible à ce réseau. Un réseau invité (10.0.2.x) n’y a pas accès.

Malheureusement je ne crois pas que ce soit possible pour plusieurs subnets. Mais ma connaissance du serveur de cache s’arrête là. Il y a peut-être des configurations qui peuvent être appliqués.

avatar antoinem | 

Ça ne fonctionne pas par le protocole Bonjour. Le serveur de cache se déclare aux serveurs d'Apple par son IP publique. Ce sont ensuite les serveurs d'Apple qui redirige les appareils vers le serveur de cache en constatant que l'IP publique de sortie est identique.
Des fonctions avancées permettent de gérer plus finement le comportement avec les sous-réseaux locaux. Il suffit d'appuyer sur la touche Option (Alt) pour que le bouton Option se transforme en Options avancées. Tout est documenté : https://support.apple.com/fr-fr/guide/mac-help/mchl3b62f627/mac

avatar 2mac | 

Merci pour cet article très utile.

avatar Jipy | 

Une façon simple de réduire notablement la bande passante de son réseau local 😉

avatar DDivo | 

@Jipy

À choisir entre le LAN et le WAN, je préfère solliciter plusieurs fois mon LAN en Gbit !

avatar AirForceTwo | 

...et d'augmenter sa facture d'électricité avec un ordinateur allumé en permanence. Je ne vois pas l'intérêt dans le cadre d'une utilisation domestique.

avatar MacTHEgenius | 

@AirForceTwo

...ordinateur qui reste allumé de toute façon. Alors pourquoi ne pas l’utiliser ?

Au final, ça ne fait pas beaucoup de différence. Ajouter un serveur de backup Time Machine en plus et là votre ordinateur fixe devient de plus en plus utile.

avatar Strix | 

En cas de plusieurs machines (iMac en l'occurrence), ça vaut le coup d'activer le cache sur les 2 ?

Sachant que ma compagne et moi-même ne faisons pas les maj au même moment (un coup ça va être elle, un coup moi...) ?

avatar MacTHEgenius | 

@Strix

Dans ce cas-ci, les deux iMac seront disponibles pour la cache. Pour l’utilisation de cette cache, tout dépend de qui fait les mises à jour avant l’autre.

Le mieux serait d’en utiliser qu’un seul.

Dans le cas d’un plus vaste réseau, il est pertinent d’en avoir plusieurs pour servir plusieurs clients en même temps. Dans ce cas, ils fonctionnent en chaîne. Si votre Mac est connecté au serveur de cache #1 et qu’il demande une mise à jour, il ira voir le #1. Si #1 ne l’a pas, il ira voir sur les autres serveurs de cache. Si oui, alors #1 transmet la mise à jour sur votre Mac.

Tant qu’il y a des serveurs de cache dans votre sous-réseau, la chaîne continue. S’ils ont tous été contactés en vain, alors votre Mac demande à #1 de télécharger la fameuse mise à jour et il vous la retransmet.

J’espère que ça vous éclaire.

avatar Strix | 

@MacTHEgenius

Merci pour l'éclaircissement.

Je vais donc servir de cache ^^

avatar MacTHEgenius | 

@Strix

Fait plaisir ^^

avatar jooner25 | 

Cet article est très utile, j’en ferai bon usage, merci.

avatar jocool | 

Concernant le point sur la suspension d'activité/mise en veille, je crois me souvenir que l'application Server contournait nativement ce souci par une "assertion" visible via la commande Terminal : pmset g- assertions
Cela liste les process/assertions qui bypassent divers comportements liés à la gestion de l'alimentation, et il y avait, il me semble, le process de l'App Server qui empêchait la mise en veille.
Sous HighSierra sans l'App Server mais avec la mise en cache activée, cela n'apparait plus :( dommage...

avatar Issou la chancla | 

Trop compliqué, pas assez clair; fonction "nid à emmerdes", je passe mon tour.

avatar areayoko | 

J'ai trouvé cet article interessant : Merci MacG :)

avatar antoinem | 

"Vous pouvez utiliser un volume de stockage présent dans le Mac, relié directement à l’ordinateur, mais aussi un volume distant présent sur le réseau local. Cette dernière option est particulièrement utile pour exploiter un NAS."
Sur ce dernier point, la réponse est non, pas de disque distant. Quel serait l'intérêt quand on y pense d'ailleurs ?
Vous n'abordez pas non plus les Options avancées (touche Alt enfoncée) en détails, c'est bien dommage, ça répondrait à des interrogations sur les réseaux et sous-réseaux locaux, entre autres.

avatar perlaurent | 

Excellent merci.

CONNEXION UTILISATEUR