Réduire la fréquence de rebake pour éviter de manquer de mémoire ?

J’essaie de refaire la cuisson de 45k publications car j’ai changé l’URL du CDN S3 et cela continue d’épuiser la mémoire et de l’arrêter.

J’ai lu ceci sur la configuration d’un fichier d’échange…

Les deux premières commandes se sont bien déroulées…

  1. Créer un fichier d’échange vide

    install -o root -g root -m 0600 /dev/null /swapfile

  2. Écrire un fichier de 2 Go nommé ‘swapfile’

    dd if=/dev/zero of=/swapfile bs=1k count=2048k

Mais ensuite, sur mkswap /swapfile, il m’a donné une erreur…

Erreur mkswap swapfile est monté ne fera pas d’espace d’échange

J’ai essayé ceci à la place…

swapoff /swapfile && rm /swapfile

et j’ai eu cette erreur…

swapoff : Pas superutilisateur

Je suis sur un Digital Ocean Droplet, donc je suppose que je n’ai pas les autorisations nécessaires pour cela ?

Face à ces blocages, j’ai essayé au lieu de cela de simplement refaire la cuisson des publications non cuites en exécutant…

rake posts:rebake_uncooked_posts

Il en exécutera plusieurs centaines, peut-être quelques milliers si j’ai de la chance, puis s’arrêtera à nouveau. Après l’avoir surveillé depuis hier, je suis à moitié cuit. :wink:

Existe-t-il un moyen d’exécuter une commande de refonte qui est limitée en débit ? Peu m’importe que cela prenne du temps, pendant la nuit ou autre, je veux juste que cela cesse d’échouer.

Toute aide serait grandement appréciée.

Étrangement, j’ai relancé l’inachevé pendant que j’écrivais tout cela. Je suis parti déjeuner longuement avec des amis et je suis revenu pour constater qu’il était terminé à 100 %. Je ne sais pas si le fichier d’échange a finalement commencé à fonctionner ou si c’était juste une coïncidence de faible utilisation, mais…

terminé, enfin !

Peut-être que si quelqu’un a une réponse, cela pourra aider quelqu’un d’autre ou moi-même lors de la prochaine tentative.

Sur Ubuntu :

Sudo -i

Sur Debian

Su -

1 « J'aime »

Merci. Je ne suis pas sûr d’avoir bien fait ou non.

Cela n’a pas l’air correct. Quelles instructions suivez-vous ?

Et pourquoi créez-vous un espace de permutation (swap) à l’intérieur du conteneur ? L’espace de permutation est censé être créé sur l’hôte, et non à l’intérieur du conteneur.

Parce que je sais à peine ce que je fais. :wink:

Donc, c’est au niveau de la base ubuntu: et non aux niveaux ubuntu:/var/discourse ou ubuntu-app:/var/www/discourse ?

Des idées sur la limitation du nouveau panage (rebake throttling) ?

1 « J'aime »

Je n’ai jamais vu le nouveau rendu être limité, il est asynchrone, il met en file d’attente les tâches qui sont traitées en arrière-plan.

1 « J'aime »

OK, merci. Le mien a terminé le nouveau cuisson pour l’instant, donc je me considère chanceux et j’arrête d’y toucher. :smiley:

Attention :warning: : ne faites pas les choses à l’aveugle sur un site de production, il y a de fortes chances que les choses tournent mal sans aucun moyen réel de les récupérer.

non, ce n’est pas le niveau ubuntu:.

Avez-vous fait un ./launcher enter app avant d’essayer de créer un swap ? Si oui, c’est ce que vous n’auriez pas dû faire.

Lorsque vous vous connectez pour la première fois à votre serveur, c’est l’hôte, lorsque vous entrez dans l’application, vous effectuez des actions à l’intérieur du conteneur.

le swap doit être créé sur l’hôte, l’application réside à l’intérieur du conteneur, c’est ce que vous accéderez pour exécuter la commande de rebake.

OK, merci pour les conseils.

Notre forum n’est qu’un groupe d’amis et dispose de bonnes sauvegardes, donc si je le mets en difficulté pendant une semaine environ, nous devrons simplement survivre sur GroupMe. :wink:

Cela signifie que vous avez déjà un fichier d’échange, il s’appelle /swapfile, et il est utilisé.

Si vous souhaitez l’agrandir, vous pouvez arrêter votre conteneur, puis le démonter, et ensuite utiliser cette commande dd pour l’agrandir, et enfin la commande mkswap.

Si quelqu’un d’autre lit ceci, la façon dont je procède est de faire grep swap discourse-setup et de regarder les commandes qui s’y trouvent. C’est une version légèrement plus simple de ce qu’il faut faire.

3 « J'aime »

Je sers souvent de leçon.

Merci pour l’ajout.

1 « J'aime »

Je ne sais pas pour vous, mais je manquais constamment de mémoire lors d’un long processus de remastérisation. La création d’un espace d’échange (swap) de 2 Go a amélioré la situation (plus de messages ont été remastérisés), mais j’ai toujours eu des problèmes de mémoire insuffisante après un certain temps. J’ai augmenté l’espace d’échange à 4 Go et j’ai pu remastériser tous mes messages.

Je ne connaissais rien aux fichiers d’échange (swap files) à part ce guide Create a swapfile for your Linux server, mais chatGPT était suffisamment compétent pour m’aider à augmenter mon espace d’échange sans problème.

3 « J'aime »

Un problème pour moi est que je n’ai pas une bonne compréhension de ce qui doit être fait dans quel domaine. À l’intérieur ou à l’extérieur du conteneur ou à l’intérieur ou à l’extérieur de l’application. J’essaie de prendre de bonnes notes et d’avoir des raccourcis mentaux pour les choses que j’utiliserai à nouveau. Mais juste au moment où je commence à comprendre, j’ai terminé ce que je dois faire et je n’y toucherai plus pendant encore 6 à 12 à 18 mois. Ensuite, je dois en quelque sorte le réapprendre.

on dirait l’histoire de la vie de tout administrateur système :joy:

ma solution est de prendre des notes puis de créer un petit tutoriel ici sur meta

Je le transforme en wiki afin que d’autres puissent le modifier s’ils trouvent une erreur ou une omission, et la prochaine fois que j’aurai besoin de faire la même chose…

1 « J'aime »