Mon installation Discourse est devenue de plus en plus lente ces dernières semaines. Par le passé, lorsque cela se produisait, la reconstruction de l’application aidait. Cependant, cela ne semble plus aider.
J’ai cherché des conseils sur ce forum et j’ai essayé quelques optimisations de la base de données (vacuum full verbose, rebuild index, vacuum analyze verbose).
Cependant, rien ne semble aider, et lorsque je démarre le conteneur, il faut beaucoup, beaucoup de temps avant que je puisse réellement me connecter au forum.
Si cela continue, le forum deviendra à terme complètement inutilisable. Avez-vous une idée par où commencer à chercher ?
Il semble que la sauvegarde d’un article soit particulièrement sujette aux interruptions et aux échecs.
Je ne suis pas sûr que cela puisse donner un indice sur ce qui se passe.
La sortie de vmstat nous indique que, dans l’état actuel des choses, il n’y a pas assez de RAM.
Il se peut que Discourse fonctionne comme il se doit, et que tout soit en ordre, mais que vos données aient atteint un point où 4 Go de RAM ne suffisent plus.
Ou il se peut que quelque chose ait mal tourné et qu’une grande quantité de RAM soit utilisée alors qu’elle ne devrait pas l’être.
Une mesure de la taille consiste à faire une sauvegarde sans les pièces jointes et à voir sa taille.
Il se peut que le mini-profiler donne un indice sur les actions de base de données qui prennent tant de temps.
Si vous avez le budget pour doubler la RAM, faites-le. (Si vous prenez soin d’augmenter la RAM tout en laissant le stockage tel quel, si vous avez une telle option de la part de votre fournisseur, alors cela peut être un changement réversible, voire temporaire.)
Si vous ne pouvez pas vous permettre plus de RAM, vous pouvez essayer de définir des valeurs plus basses pour db_shared_buffers (par exemple, 128 Mo ou moins) et limiter UNICORN_WORKERS à seulement 2 en attendant, car vous devez arrêter le swapping dès que possible.
Plus de RAM est assez cher de la part de mon fournisseur d’hébergement, je vais donc d’abord explorer d’autres options. (Et je crains que le modifier ne casse mon prix « grand-père »…)
J’ai changé db_shared_buffers en 128 Mo et UNICORN_WORKERS en 2.
Est-ce que launcher app stop / start suffit pour que ces paramètres prennent effet ?
Qu’est-ce que le mini-profiler et comment l’utiliser ?
Avec un Alt+P sur votre clavier, les actions ultérieures sur le forum devraient afficher une chaîne de temps juste sous la bannière du forum (pour moi, à droite) et si vous cliquez sur le temps, vous verrez une fenêtre contextuelle avec quelques statistiques.
C’est à peu près la même chose que la mienne, fonctionnant avec 1 Go de RAM. J’ai 2 000 sujets, 15 000 messages, plus de 500 inscriptions.
Quelle est l’historique de votre Discourse ? Je me souviens vaguement d’une époque où il était censé créer un index pour une table pour des raisons de performance.
Qu’en est-il des plugins ? Pouvez-vous exécuter des actions en mode sans échec pour voir si elles s’exécutent plus rapidement ?
Existe-t-il un endroit facile pour trouver ces statistiques ?
La plupart des statistiques que je vois me montrent ce qui s’est passé au cours de la dernière journée ou semaine, mais aucun total.
Je ne suis pas sûr de ce que vous entendez par historique. Mais je l’ai commencé en mars 2021.
Première impression : le mode sans échec n’est pas plus rapide. Je vais jouer avec et le mini-profiler pour voir si cette impression se confirme.
Sur la page /about, il y a une colonne pour le tout-temps.
Il semble que votre machine n’ait pas été redémarrée depuis plus d’un an - il serait probablement utile de le faire, et de mettre à jour pour la sécurité en même temps. Il est tout à fait possible que le redémarrage aide.
Je pense avoir remarqué que votre serveur est configuré pour utiliser un hyperviseur alors que le mien est configuré pour utiliser LXC. Je ne sais pas si c’est important. (Mon système affiche un processus /usr/bin/lxcfs que le vôtre n’a pas, et le vôtre affiche un processus hv_vss_daemon que le mien n’a pas.)
Aussi, peut-être pourriez-vous partager la sortie de df -T et swapon.
Je suis d’accord avec une attitude sceptique à ce sujet ! Mais je ne le suggère pas à la légère - je suis à peu près sûr que nous avons vu un cas où un système fonctionnant depuis longtemps s’est amélioré avec un redémarrage. (Edit : ici, bien que ce soit un cas différent.)