2 votes

De sérieux problèmes de performance avec Expose dans Catalina

Résumé

J'ai un problème où l'utilisation d'Expose pour faire glisser une fenêtre d'un espace à l'autre provoque un énorme ralentissement qui a l'air presque comique - comme si la machine se transformait en une planche ouija et que la charge atteignait facilement plus de 10 %. 200 ( !) pendant qu'il traverse des "crises".

Voici un vidéo de l'incidence de ce problème.

Conditions

  1. Installation fraîche de Catalina
  2. MacBook 12,1 avec processeur i7 double cœur 3,1 GHz, 16 Go de RAM et 1 To de SSD
  3. Je suis actuellement en train de "construire à partir de zéro" et d'installer mes logiciels et outils prescrits

Présentation du problème

  1. J'invoque les écrans dans l'en-tête de chaque "Desktop" en utilisant Expose et je tente de déplacer une fenêtre d'un écran à l'autre.

  2. Le comportement de déplacement d'une fenêtre lorsque je glisse a une action où le décalage des mouvements de glissement entre dans un état de ralenti fantomatique. où le mouvement suit une sorte de modèle "possédé".

  3. Au fur et à mesure des interactions avec l'interface utilisateur de ma file d'attente, on dirait qu'elle a son propre esprit. (Toute autre interaction de l'interface utilisateur semble être ignorée, mais en réalité, elle est mise en file d'attente et continuera à fonctionner à une fraction de la vitesse en temps réel).

  4. Je dois m'arrêter et attendre que toutes ces actions d'entrée se terminent. Cela peut prendre plusieurs minutes, parfois plus de 15 si j'essaie de faire des choses comme cliquer sur une icône dans le dock, déplacer une fenêtre dans un espace spécifique, ou faire ce qu'un utilisateur frustré pourrait faire pendant que sa machine semble ne pas répondre.

Effets secondaires

Un pic de charge massif

La raison immédiate pour cela serait que la charge du système, qui tournait déjà entre 3 et 4 (l'ordinateur a 4 processeurs effectifs, donc juste en dessous de l'efficacité nominale lorsqu'il est effectivement inactif par rapport à l'entrée humaine), va monter en flèche jusqu'à un nombre très élevé (bien plus de 100 ou 200 pendant ces singeries) et il faudra plusieurs minutes pour que la charge "se calme" après l'arrêt des effets de ralenti, et cela juste pour passer de 200 à environ 25 où elle se stabilisera pendant encore facilement 10 minutes.

Mise en file d'attente des processus du système

Comme je suis toujours en train de construire mon ordinateur à partir de zéro sur la base d'un document de modèle de construction que j'ai créé pour installer manuellement mes outils logiciels sur une nouvelle machine, je trouve cela extrêmement déconcertant.

Détails de la construction

  1. Utilisation mise à jour pour être conforme à Catalina avec des choses comme DeviceKit.
  2. Certains outils open source nécessitent une autorisation de sécurité explicite avant même d'être installés, mais ces outils semblent être des exceptions inoffensives qui ne nécessitent pas de pilotes de noyau supplémentaires et j'espère qu'ils seront conformes d'ici janvier.
  3. Je n'utilise pas de "junk ware" qui pourrait facilement frôler le malware (comme la "protection antivirus").
  4. J'utilise brew cask install ou tout autre logiciel que je peux.
  5. Pour tout le reste, j'utilise l'App Store.

Premières conclusions

Je n'ai aucune idée si ces applications ont une corrélation avec ce comportement ou non. Lorsque cela se produit, il arrive souvent que des processus système se déclenchent et occupent plus de 50 % de l'unité centrale, mais j'attribue cela au fait qu'ils sont en attente à cause de la charge absurdement élevée et que c'est plus un symptôme qu'une cause de mes problèmes. J'ai même abandonné Chrome pour Safari afin d'essayer de mieux utiliser les ressources partagées et de minimiser les écarts par rapport au nid d'Apple. J'ai déjà activé "Réduire le mouvement" et "Réduire la transparence" dans Accessibilité -> Affichage mais cela n'a eu aucun impact.

Problème de chaleur possible ?

Une théorie que j'avais était que mes ventilateurs sont sales et ne refroidissent pas bien mon CPU. J'ai eu des problèmes de performances lorsque cette machine fonctionnait sous Mojave avec des blocages de 30 à 90 secondes, mais comme je l'avais mise à jour à travers au moins 3 versions du système d'exploitation, j'ai attribué ces problèmes à KEXT cruft ou à d'autres logiciels inutiles que j'ai utilisés lorsque j'étais moins prudent. Les ventilateurs tournent bien lorsque les CPU chauffent, mais la température du cœur du CPU oscille entre 70°C et 80°C même lorsque la charge est inférieure à 4. Par conséquent, je me demande si tout cela n'est pas simplement un écrêtage du CPU par la chaleur, mais je ne sais pas où la température va induire cette sécurité intégrée. Si je ne peux pas exclure le blocage du flux d'air, je vais ouvrir ce bébé et lui donner un coup d'air comprimé, mais vu que j'ai remplacé les ventilateurs et la batterie il y a seulement 14 mois, cela serait surprenant car je ne travaille pas dans une usine de peluches.

Ce que j'espère obtenir en publiant ceci

Quoi qu'il en soit, même si je ne m'attends pas à ce que quelqu'un identifie la raison pour laquelle Expose se comporte de cette façon (bien que je serais reconnaissant pour quelques conseils de dépannage car je n'utilise Catalina que depuis quelques jours). Ce que j'espérais, c'est que quelqu'un sache comment désactiver les animations gratuites introduites par Catalina qui pourraient exacerber ce problème.

Mise à jour 11/11/19 17:20

Après avoir exécuté en mode sans échec et chargé presque toutes les applications, je n'ai pas pu reproduire le problème, même si des éléments comme le défilement étaient définitivement affectés. Il ne semble pas y avoir de problèmes de température et les pics à plus de 90° se sont rapidement calmés, donc à moins qu'il ne s'agisse d'un problème de chaleur qui s'accumule lentement, je ne pense pas que ce soit le cas.

Une chose que j'ai oublié de mentionner, c'est que lorsque ce problème est survenu, il y avait 3,7 Go dans l'espace d'échange de 5 Go. Le fait de démarrer la machine normalement et d'exécuter les applications comme je l'ai fait en mode sans échec n'a pas non plus recréé ces problèmes, mais l'espace d'échange est toujours inutilisé. J'aurais dû le noter, mais dans le passé, j'ai corrélé la lenteur de l'animation Expose avec la quantité d'espace de pagination.

Ma nouvelle théorie est qu'il y a une fuite de mémoire qui utilise la mémoire virtuelle et que la lenteur et la charge sont le résultat d'une pagination incessante. Je pense que je ne serai en mesure d'étayer cette théorie qu'après avoir laissé ma machine fonctionner pendant plus d'un jour ou deux avec beaucoup d'applications ouvertes pour pouvoir voir. Je pourrai alors identifier les applications qui ont le taux de pagination le plus élevé.

Mise à jour 11/12/19 01:54

Après l'avoir ouvert et n'avoir pas vu beaucoup de poussière, j'ai soulevé la plaque de refroidissement pour vérifier la pâte thermique qui était sèche et à peine présente. J'ai ajouté de la pâte fraîche après avoir nettoyé les deux surfaces, mais je ne sais pas si j'en ai trop utilisé ou si les surfaces n'étaient pas assez propres, mais je constate que la température semble dépasser les 100°C de temps en temps et que, dans l'ensemble, il fonctionne plus chaud, bien que les pics de chaleur ne soient qu'instantanés.

J'ai exécuté GeekBench avant et après, à la fois en mode sécurisé et en mode normal, et les résultats des performances étaient effectivement les mêmes. Les résultats sont en fait légèrement supérieurs aux benchmarks établis pour mon modèle. Il semble très chaud mais cela n'affecte en rien les performances. J'ai lu des articles affirmant que l'i7 peut fonctionner en toute sécurité à 100°C (bien que certaines autorités disent que c'est trop chaud pour une quelconque durée).

J'ai installé le gadget de puissance d'Intel et il montre que mon surplus d'horloge est d'environ 2,45 GHz, mais qu'il atteint les 3,1 GHz annoncés, donc je ne pense pas qu'il soit coupé. Le mystère des performances reste entier, mais une chose est sûre : il faut des jours, voire des semaines, pour que toutes les opérations de nettoyage de Catalina sur les médias et les images soient terminées !

1voto

Jose Chavez Points 645

Il est très probable que vous ayez une erreur matérielle telle que des ventilateurs qui ne fonctionnent pas, une pâte thermique mal appliquée, des évents bloqués ou autre.

Une moyenne de charge de 3-4 lorsque la machine est au repos n'est certainement pas normale. Votre machine est une machine à double cœur - l'HyperThreading ne permet pas vraiment de compter cela comme 4 cœurs (c'est loin d'être aussi bon que des cœurs séparés). Une moyenne de charge de 3-4 signifie que l'ordinateur est très chargé.

La moyenne de charge élevée pourrait provenir de l'étranglement thermique (soit par le biais de kernel_task forçant le CPU à se mettre en veille, soit simplement par l'étranglement de la fréquence). Elle peut également provenir d'autres sources, comme un disque défectueux, bien que vous ayez probablement d'autres problèmes.

Je vous recommande de démarrer en mode de récupération Internet pour vérifier si vous avez toujours une moyenne de charge élevée et des performances lentes. Si c'est le cas, il ne s'agit pas d'un problème logiciel.

1voto

Darf Nader Points 563

Mesures prises

Ma solution était la suivante :

  1. Nettoyage des ventilateurs et des voies d'aération
  2. Remplacement de la pâte thermique
  3. Ajout de la surveillance de la température et de la vitesse du ventilateur
  4. Augmenter la vitesse globale des ventilateurs en utilisant des règles personnalisées par rapport aux valeurs par défaut du système.

Nettoyage du matériel

J'ai démonté mon MacBookPro et j'ai constaté qu'il y avait un peu de poussière accumulée dans le ventilateur lui-même et qu'environ 10% des ailettes du dissipateur thermique étaient bloquées par de la poussière fine. Il y avait également quelques grains de poussière et des taches aléatoires sur la carte et dans des poches du châssis. Cela ne semblait pas être beaucoup de poussière, mais je l'ai quand même nettoyée à l'air comprimé.

De même, j'étais ravi d'avoir encore un nouveau tube de pâte thermique dans ma boîte à outils informatique. Après avoir dévissé le cinch de la plaque du dissipateur thermique du noyau du CPU, j'ai vu que l'ancienne pâte était pratiquement sèche et très anémique. J'ai utilisé un chiffon sec pour nettoyer les deux surfaces, j'ai appliqué de la pâte fraîche et j'ai refermé la plaque. Cependant, j'ai peut-être utilisé trop de pâte car il y avait un peu de surplus sur les côtés. J'ai serré au maximum sans trop serrer et sans risquer d'arracher les têtes, de cisailler les vis ou d'arracher le filetage. Le but était de s'assurer qu'il n'y avait aucune possibilité de bulles d'air piégées dans la pâte qui pourraient chauffer et réduire la surface de contact de la pâte avec les deux surfaces.

Logiciel

Avant de m'attaquer au refroidissement, j'ai ajouté et configuré trois utilitaires :

Lectures et commandes des ventilateurs et de la température : Menus iStat / Contrôle du ventilateur des Macs

Ces deux utilitaires ont la capacité de mesurer la vitesse du ventilateur et la température du CPU, les deux ont une version d'essai, mais iStat Menus lit environ deux douzaines d'autres capteurs de température à travers le système alors que MFC ne lit que la température du noyau du CPU. Bien que j'ai d'abord utilisé MFS, j'ai ensuite trouvé que iSM était le meilleur choix global car il a une utilité bien au-delà de la gestion de la température et du ventilateur, j'ai donc payé les 10 $ pour l'utiliser comme un affichage des métriques globales.

MFC a un contrôle limité du ventilateur en mode d'essai, tandis que iStat Menus est entièrement fonctionnel et vous permet de créer des règles de vitesse de ventilateur personnalisées. Vous pouvez donc l'essayer avant de l'acheter pour voir s'il est fait pour vous. En outre, pour être juste, iSM et MFC ne sont pas vraiment comparables en termes de portée, car iSM vous permet de créer des graphiques personnalisables étendus pour presque toutes les mesures du système imaginables.

De plus, l'iSM semble mesurer des statistiques qui sont déjà communiquées, tout comme l'a fait l'Union européenne. /proc est dans Linux. Lors des tests, j'ai constaté que les performances variaient peu avec et sans iSM (en utilisant Activity Monitor, que je ne recommande pas de faire tourner indéfiniment car il utilise beaucoup de ressources). Même l'empreinte mémoire des éléments de l'interface utilisateur d'iSM n'est que de 35 Mo, soit moins d'un quart de celle d'Activity Monitor, qui peut également faire monter en flèche la charge du processeur, ce qui le rend inapproprié en tant que moniteur à plein temps comme l'est iSM.

Bien que j'aie toujours installé MFS, je ne l'utilise pas vraiment au profit d'iSM. Je le garde au cas où j'aurais besoin d'un contrôleur de ventilateur/speedomètre potentiellement plus léger que iSM, mais je n'en ai pas encore eu besoin.

Mesure de l'horloge du CPU : Gadget de puissance Intel

En plus d'iSM, Intel Power Gadget permet de visualiser la vitesse variable du processeur, qui fluctue en permanence en fonction de la demande du système. Je ne suis pas certain que cet outil enregistre l'écrêtage comme le résultat d'une surchauffe, mais je ne vois pas pourquoi il ne le ferait pas. Comme iSM, il offre également des fonctions graphiques étendues. De plus, il fournit une nouvelle mesure de la vitesse du processeur en tant que point de données qu'iSM place maintenant dans les mesures du processeur et il est listé juste à côté de la température du cœur du processeur pour un suivi facile ! L'outil n'a même pas besoin d'être en cours d'exécution pour lire cette donnée - elle est ajoutée au reste des mesures du système qu'iStat peut lire ! C'était une grande découverte et cela a ajouté une métrique cruciale qui me manquait auparavant.

Résultats

Afin d'établir une référence de vitesse, j'ai utilisé Geekbench 5 pour obtenir une base de référence avant et après le nettoyage et le réglage du refroidissement. Je l'ai également fait tourner en mode sans échec ainsi qu'en mode normal (avec le moins d'exécution possible, bien qu'il ne s'agisse pas d'un test pur puisque des choses comme photoanalysisd tournaient souvent en arrière-plan). Cependant, ce que j'ai trouvé était très surprenant : alors que les performances étaient radicalement améliorées lorsque la chaleur était maîtrisée, les mesures après le nettoyage ont montré que le CPU atteignait des températures plus élevées lors des pics. J'ai une hypothèse pour expliquer cela.

Amélioration des performances

Avant que je ne nettoie le système de refroidissement et que je n'ajoute de la pâte fraîche, les tests au banc montraient des taux de CPU simples/multiples autour de 700/1775 au démarrage, avant et après le nettoyage. Le fait de faire tourner les ventilateurs au maximum en permanence par rapport au nettoyage du système de refroidissement n'a pas changé les performances de façon mesurable. De plus, cette mesure est en fait juste au-dessus de la moyenne indiquée par Geekbench pour ma machine. (Les tests en mode sans échec étaient en fait environ 5-10% plus lents).

Alors que j'attendais que ma machine s'affaiblisse à cause de la chaleur ou de l'utilisation excessive de swap et du broyage des pages, le fait que j'avais imposé des règles de vitesse de ventilation plus agressives avec iSM a semblé limiter les pics de chaleur. De plus, après le nettoyage, même si je remets les règles de vitesse des ventilateurs aux valeurs par défaut du système, je n'ai pas pu recréer les problèmes de blocage, même si la température du processeur indiquait 10 °C pour une charge élevée soutenue. Il semblerait que le CPU puisse chauffer plus que ce que l'on pensait auparavant pour que le CPU se bloque car j'ai pu voir que la vitesse de mon CPU était en mode "turbo" à 3,4 GHz lors d'un test de CPU en Go. Même sous une contrainte extrême avec des réglages de ventilateur qui laissaient le CPU atteindre des températures supérieures à 100°C pendant plus de 30 secondes, les améliorations des performances globales étaient profondes et la machine juste dans la convivialité anecdotique. Les vilains problèmes avec Expose/Mission Control ne se sont pas reproduits.

Pics de température élevés apparents

Certes, il y a une anomalie qui, au départ, n'avait aucun sens. Avant de le nettoyer et de faire tourner le ventilateur à la vitesse maximale, la température du CPU avait un plancher élevé même au repos entre 65° et 75°C mais la température maximale mesurée ne semblait jamais dépasser 90°C. Après le nettoyage, le comportement des mesures était très différent. Alors que la température plancher au repos était plus basse avec les paramètres par défaut du ventilateur en mode veille (parfois aussi bas que 40°C), j'ai remarqué que la température centrale du CPU fluctuait énormément avec la charge (et la vitesse du CPU) alors qu'avant les mesures montraient un changement beaucoup plus graduel même si le sondage et le rafraîchissement des mesures étaient les mêmes. De plus, en dehors d'un chauffage et d'un refroidissement plus rapides des capteurs, les lectures maximales dépassaient occasionnellement les 100° alors qu'elles n'étaient jamais signalées comme étant aussi chaudes auparavant. Avec les règles du ventilateur réglées sur des paramètres plus agressifs qui répondent à des températures plus élevées avec des vitesses plus rapides, la température au sol du CPU était environ 15°-20°C plus basse avec une charge entre 3-4, souvent dans les 40° quand la charge était autour de 1. (Plus sur la charge du système et la volatilité de la température dans un moment.)

Conclusions

  1. Il est clair qu'un mauvais refroidissement était le facteur principal des mauvaises performances de ma machine, bien que dire cela soit une simplification excessive des résultats que j'ai vus. D'une part, je crois que les mesures que j'ai prises avant le nettoyage et le collage n'étaient pas exactes ni précises à cause de l'accumulation de poussière. Il est possible que les pics de température sauvages qui sont proportionnels aux changements de vitesse du CPU qui varient avec la charge de travail de la machine, les améliorations de performance ne correspondent pas à cette possibilité. Les capteurs de température étant ce que la machine utilise pour réguler le CPU, il est possible que la disparité soit à l'origine de certains problèmes. Une fois que les capteurs ont pu établir des rapports précis et exacts, les performances globales ont été plus proches de la conception prévue.
  2. En plus du nettoyage physique, le fonctionnement avec des vitesses de ventilation plus rapides a fait des merveilles pour améliorer le refroidissement, comme on pouvait s'y attendre avant le nettoyage, mais avec un canal de refroidissement nettoyé, les effets étaient encore plus évidents. Bien qu'il semble que le fait de tourner à pleine vitesse presque constamment avant le nettoyage permette d'éviter les problèmes liés à la chaleur, après le nettoyage, j'ai pu assouplir les règles de manière substantielle et la maîtrise de la chaleur a été accomplie beaucoup plus facilement en sachant que les températures réelles et mesurées n'étaient pas disparates.
  3. Par conséquent, mon hypothèse pour la volatilité de la température est que les lectures des capteurs de température du CPU sont en dehors du code du CPU et ont été brouillées par l'accumulation de poussière. Après avoir été nettoyés, ils ont pu être plus précis et exacts. Il se peut que les pics de température plus élevés n'aient tout simplement pas été maintenus assez longtemps pour être lus à l'avance puisque la poussière isolait les sondes. Ne sachant pas où se trouvent physiquement les sondes du capteur qui mesurent la température du CPU, je ne peux pas dire si cela tient la route ou non.
  4. Enfin, après avoir nettoyé et réglé les règles de ventilation, la charge du système, bien qu'elle atteigne encore souvent 30 ou 40, n'est pas si terrible qu'elle paralyse la machine. Les pics de charge élevés sont une réalité de la vie sur les vieux Macs, mais je sais maintenant qu'ils ne doivent pas être paralysants. Avant que je ne nettoie et refroidisse, il semblait que les problèmes d'animation d'Expose/Mission control se manifestaient lorsque la charge était supérieure à 100. Aujourd'hui, la charge peut atteindre 40 si je la pousse un peu et qu'elle pagine comme un fou, mais même lorsque la machine est à 3,4 GHz et que les ventilateurs sont au maximum sous de grosses charges de CPU et d'E/S et qu'elle pagine à un taux de 8 Mo/seconde, les impacts sur les performances laissent ma machine toujours utilisable mais un peu lente sur l'interface utilisateur.

TL;DR: Il a fallu dépoussiérer le système de refroidissement et augmenter la vitesse des ventilateurs en fonction de seuils de température spécifiques pour que ma machine retrouve sa santé. De plus, le CPU i7 a une fréquence d'horloge variable qui est une fonction d'économie d'énergie, et pas seulement un accélérateur pour les pics de chaleur - du moins pas dans des conditions de fonctionnement normales. L'ajout de quelques bonnes mesures qui ne taxent pas le système est crucial pour voir autre chose qu'une amélioration notable anecdotique et iState Menus semble être un excellent choix si vous êtes avide de données. Il existe des outils open source et en ligne de commande plus légers pour les puristes.

J'espère que cette longue analyse vous a été utile. J'ai trouvé que cela valait la peine d'entrer dans tous les détails, même s'il y a quelques redondances.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X