Votre connexion réseau Redis fonctionne très mal

Je reçois constamment ceci dans les journaux - avec des valeurs comprises entre ~100k et ~1.35m - mais les lectures proches de 100k semblent assez courantes :

Votre connexion réseau Redis est extrêmement lente. Les dernières lectures RTT étaient [97069, 103986, 98459, 100762, 381617], idéalement elles devraient être < 1000. Assurez-vous que Redis s'exécute dans la même zone de disponibilité ou centre de données que Sidekiq. Si ces valeurs sont proches de 100 000, cela signifie que votre processus Sidekiq peut être saturé en CPU ; réduisez votre concurrence et/ou consultez https://github.com/mperham/sidekiq/discussions/5039

Cela indique peut-être que Redis n’est pas en mesure d’utiliser suffisamment de CPU ? Il semble y avoir beaucoup de marge pour le CPU et la RAM sur le serveur lui-même cependant.

Aussi :
Sidekiq consomme trop de mémoire (utilisant : 3570.19M) pour 'www.example.com', redémarrage

Ceci utilise l’application tout-en-un app.yml avec Discourse stable 3.3.2.

Depuis app.yml :

UNICORN_SIDEKIQS: 9
DISCOURSE_SIDEKIQ_WORKERS: 5

J’ai également ajouté cette configuration à l’hôte :

Informations du tableau de bord Sidekiq :


Il semble en effet que Redis ne soit pas en mesure de dépasser 1024M d’utilisation de mémoire.

Si quelqu’un a des idées, j’apprécierais ! :meow_heart:

Pour faire suite à cela, je rencontre le même problème avec Jobs::PostAlert :

Avec ces tâches qui durent souvent jusqu’à 15 minutes lorsque l’on utilise 4 Sidekiqs avec 5 threads (par défaut) lors des tests actuels. Il semble que la vitesse des tâches par seconde pour Sidekiq dépende principalement du nombre de ces tâches exécutées simultanément et du nombre de threads disponibles pour les autres tâches.

Augmenter le nombre de Sidekiqs à 6 ou plus (5 threads) augmentera la vitesse de traitement de la file d’attente, mais postgres plantera assez régulièrement (je suppose à cause d’un trop grand nombre de tâches Jobs::PostAlert exécutées simultanément).

Ceci est sur Stable 3.3.2. Les changements et corrections du fil de discussion lié semblent déjà implémentés dans la version 3.3.2, si je ne me trompe pas.

Postgres ne devrait jamais planter et cela indique généralement un bug de postgres ou une sorte de problème plus important.

Avez-vous des journaux ?

2 « J'aime »

Avez-vous redémarré le serveur depuis que vous avez effectué ces modifications de configuration du noyau ?

Peut-être que

lscpu

serait également utile

1 « J'aime »

Vous ne devriez jamais augmenter UNICORN_SIDEKIQS à ce point, mais seulement augmenter les workers.

Cela ne devrait jamais arriver.

Les possibilités sont :

  1. Vous êtes limité en ressources parce que soit
    a) Votre site a dépassé les ressources du serveur
    b) Vous allouez mal les ressources
  2. Il y a un bug quelque part dans la pile

Je commencerais par faire

UNICORN_SIDEKIQS: 1
DISCOURSE_SIDEKIQ_WORKERS: 20

ce qui devrait libérer de la RAM de votre serveur.

Pour plus d’informations, vous devrez exécuter les tâches problématiques dans une console PostgreSQL et signaler quel est le goulot d’étranglement.

1 « J'aime »

Veuillez m’excuser pour ma disparition et merci pour vos réponses. :slight_smile:

Je crois que le principal problème de lenteur de Redis était que THP était toujours activé (alors que je pensais le contraire) :

Pour les plantages de PG, la principale solution pour moi a été d’ajouter ceci à l’app.yml :

docker_args:
  - "--shm-size=34g"

Avec la valeur définie sur db_shared_buffers + 2GB, db_shared_buffers étant 25% de la RAM totale de l’hôte.

Remplacement de la valeur par défaut 512m :

1 « J'aime »

J’ai examiné votre historique de publications et je vois dans Problème Sidekiq très lent… un nombre énorme de notifications utilisateur non lues que vous utilisiez un serveur de 32 cœurs avec 128 Go de RAM, avec une base d’utilisateurs très importante et active. Dans ce contexte, je comprends pourquoi 34 Go n’est pas un chiffre si énorme ! Pour information, cependant, il pourrait être utile (et intéressant) de connaître la taille de votre installation - peut-être ici ou même dans votre biographie ? (peut-être les utilisateurs actifs quotidiens et mensuels, la taille des sauvegardes de la base de données, la configuration du serveur en RAM, swap, disque, CPU.) Peut-être même un fil de discussion où nous partageons simplement nos statistiques - grandes et petites.