Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gwd consomme trop de ressources ? #1703

Open
rpo opened this issue Feb 6, 2024 · 11 comments
Open

Gwd consomme trop de ressources ? #1703

rpo opened this issue Feb 6, 2024 · 11 comments

Comments

@rpo
Copy link

rpo commented Feb 6, 2024

Ce matin j'ai eu une bien mauvaise nouvelle du gestionnaire de mon serveur partagé Rapidnet.ca (linux RedHat en mode CGI) sur lequel je fais tourner gwd depuis maintenant 15 ans. Il m'a bloqué l'accès au serveur affirmant que le fichier gwd (version 7.1), après avoir roulé un certains temps, consommait toutes les ressources du serveur partagé avec de multiples threads ou processus ouverts en même temps, beaucoup trop selon eux. Avez-vous remarqué une telle chose ? Y a-t-il une option au lancement pour fermer ces threads ?

@a2line
Copy link
Collaborator

a2line commented Feb 6, 2024

On sait que le process fork à chaque requête, c'est le fonctionnement sous Linux. Il est possible de le brider il me semble. As-tu beaucoup de visiteurs sauf toi dans les logs du serveur ? Sauf quelques requêtes sur des très grosses bases avec beaucoup de générations, j'ai envie de dire que l'exe est plus performant qu'avant et que Geneweb reste un logiciel très léger à côté de bien des autres services en ligne (volume de données minimaliste / très peu d'utilisation RAM). Peut-être que que tu fais une utilisation plus poussée de ton serveur qu'auparavant et y vient plus souvent donc ils le remarquent seulement ? Peut-être qu'ils ont mis un outil qu'ils n'avaient jamais mis, donc ils le remarquent seulement. Peut-être qu'ils ont changé la machine vers une moins performante, donc l'impact est plus important ? Enfin ce n'est pas parce qu'il y a beaucoup de processus de lancés que cela prend les ressources de la machine, quel sont les ressources consommées ? Je ne vois absolument pas comment Geneweb peut prendre toutes les ressources d'un serveur moderne : sur mon petit serveur Debian ARM 1 GhZ 512 Mo de 2007 je n'y arrive pas… ! Il est aussi possible qu'un robot crawler (indexation) états-uniens ou chinois aie scanné ta base en long en large plusieurs jours (c'est arrivé pendant 10 jours sur Roglo) dans quel cas la charge serveur peut-être temporairement très affectée (les robots ont tendance à se perdre dans Geneweb à chercher une architecture et tenter d'indexer toutes les pages, alors que c'est quasi sans fin…) tl;dr : sans plus de détails c'est beaucoup de spéculation gratuite.

@rpo
Copy link
Author

rpo commented Feb 7, 2024

Ok, c'est ce que je pense à propos des robots, j'avais aussi le log, oublié, qui était devenu très gros, je l'ai supprimé sans l'avoir lu. J'en sais pas plus pour le moment car subitement j'ai perdu accès au serveur et à mes données. J'avais été averti il y a deux jours que gwd en prenait beaucoup pour lui et ils avaient temporairement arrêter le serveur pour analyse. Avant hier ils l'ont mis accessible de nouveau et ce matin c'est black-out total et impossible de communiquer avec eux. Donc pour le moment je n'ai accès à rien. Je vais attendre de leur nouvelle car j'ai levé une urgence.

Avez-vous une adresse à proposer d'un serveur fiable qui pourrait héberger Geneweb (linux CGI), préférablement un serveur qui héberge d'autres sites Geneweb?

@rpo
Copy link
Author

rpo commented Feb 8, 2024

J'ai reçu un avis de mon hébergeur qui sonne la fin de geneweb sur mon serveur partagé. Il aura dû supprimer GWD alors qu'il y avait plus de 1000 processus enfants ouverts et autant d'instances de geneweb7.cgi. GWD ouvre (fork à profusion ?) mais ne ferme pas et semble-t-il ça bouffe la mémoire et ressources.

Ce serait la deuxième fois depuis environ 3 semaines que cet incident se produit, depuis que j'ai upgradé pour la version 7.1 et par deux fois ils ont dû fermer geneweb. Je devrai me trouver un autre hébergeur, celui actuel ne veut plus de gwd sur ses serveurs partagés ! du moins pas dans sa version actuelle. Idéalement il me suggère l'utilisation d'un serveur dédié.

A priori je crois qu'il y a un problème avec la version 7.1, du moins en mode CGI sur serveur partagé. Auparavant j'avais la version 7.0 qui roulait aussi sur un serveur partagé (un serveur moins performant) et qui ne m'a causé absolument AUCUN souci pendant les 2-3 années d'utilisation. A noter que la version 7.1 avait été mise sur un serveur partagé avec toutes les librairies requises par gwd 7.1 (librairies qui n'étaient pas requises avec la version 7.0)

Le dernier incident est survenu alors que plusieurs personnes fréquentaient ma page Genepoulin samedi, dimanche et lundi dernier. Lundi dans la nuit, GWD en était à près de 1000 instances et tout autant pour le script cgi. Ma base est pourtant légère (moins de 2300 individus) et le bassin de visiteurs somme toute restreint.

Je pense que ça mérite vérification car le même problème pourra se reproduire ailleurs.

@rpo rpo changed the title Gwd consomme trop de ressources ? Gwd consomme trop de ressources ? BUG ? Feb 8, 2024
@rpo
Copy link
Author

rpo commented Feb 8, 2024

Il y aurait-il une option pour limiter le nombre de process créés par gwd ? Ou bien pour contrôler la ressource, genre ulimit ()
Et ce qui m"étonne c'est qu'aussi le fichier script de lancement pour gwd se 'fork' tout autant, c'est peut-être normal dans les circonstances.

@rpo
Copy link
Author

rpo commented Feb 9, 2024

Ce soir j'ai transféré Geneweb sur un autre serveur partagé mais plus puissant (semi dédié) x86_64. Je peux faire le suivi des ressources utilisées, mémoire physique, nombre de process live, journal d'erreurs détaillé etc.

J'ai pu tester à l'usage,un peu, et pour le moment je ne vois absolument rien d'affolant. A suivre (j'attend que les dns se propagent).

process

@a2line
Copy link
Collaborator

a2line commented Feb 11, 2024

Moi je voudrais bien avoir ce fork sous Windows : il évite d'attendre sur les requêtes des autres ! Ensuite, j'aurais tendance à dire un script ne peut pas forker, ou que je sache, ce n'est pas un éxécutable. Aussi et toujours que sans log serveur, on ne peut pas vraiment aider. Pour sûr y'a des instances du daemon qui peuvent planter, y'a des appels multiples pour les images notamment. Mais je ne vois qu'une seule chose pour qu'une horde de gwd restent ouverts en parallèle c'est des requêtes qui plantent toute et un paramètre de timeout très très long (j'avais prévenu que ce n'était pas une bonne idée).

@rpo rpo changed the title Gwd consomme trop de ressources ? BUG ? Gwd consomme trop de ressources ? Feb 11, 2024
@rpo
Copy link
Author

rpo commented Feb 11, 2024

Comme j'ai mentionné j'ai changer de serveur, pour le mieux. Aucun problème de librairies. Je peux suivre l'utilisation des ressources et jusqu'à présent c'est minime (mais peu d'utilisation puisque le dns rendus actifs que tout récemment) . Je vais voir à propos du login timeout. Y a t-il eu une option ajoutée pour le rendre indéfini?

@rpo
Copy link
Author

rpo commented Feb 13, 2024

Sans vraiment tout comprendre encore j'ai commencé à monitorer les fork par gwd ... J'ai fait des requêtes répétées pendant un bref moment sur geneweb, puis sur wordpress et j'"ai ceci - premier graphique. Le deuxième graphique montre les fork de gwd/geneweb.cgi - Le nombre de fois que le process fork (en défaut) peut devenir important sans doute mais j'ai pas réussi à atteindre le chiffre qui inquiétait l'ancien hébergeur (il me disait plus d'un millier !!) Dans mon test Wordpress ouvre plus de procs que geneweb pour un même temps d'usage. L'usage du cpu reste faible . Rendu à 25 proc mon serveur est sensé m'e,voyer une alerte. Je vais continuer à suivre.

Snap207580441
Snap207580443

@mdelambilly
Copy link

Moi je voudrais bien avoir ce fork sous Windows : il évite d'attendre sur les requêtes des autres ! ...

Personellement j'ai mis geneweb dans docker avec le dockerfile que j'ai trouvé dans une des pull request. Ca marche très bien.
Docker permet aussi de llimiter les ressources utilisées par un container, ça peut être une piste pour ce genre de souci.

@a2line
Copy link
Collaborator

a2line commented Mar 29, 2024

Personellement j'ai mis geneweb dans docker avec le dockerfile que j'ai trouvé dans une des pull request. Ca marche très bien. Docker permet aussi de llimiter les ressources utilisées par un container, ça peut être une piste pour ce genre de souci.

Et c’est aussi une très bonne piste pour ceux qui n'ont pas leur glibc à jour!

@rpo des nouvelles du serveur? des nouveaux pics de process?! si tout va bien, on peut peut-être fermer l'issue?! (Les mystères de l'informatique sont impénétrables !)

À noter que j'ai eu des bots en masse sur la démo Grimaldi les derniers jours et j'ai l'impression que le robots.txt à la racine n'est pas du tout effectif ou alors ils l'ignoreraient tous… ce qui me semble très douteux !!

@rpo
Copy link
Author

rpo commented Mar 29, 2024

Personellement j'ai mis geneweb dans docker avec le dockerfile que j'ai trouvé dans une des pull request. Ca marche très bien. Docker permet aussi de llimiter les ressources utilisées par un container, ça peut être une piste pour ce genre de souci.

Et c’est aussi une très bonne piste pour ceux qui n'ont pas leur glibc à jour!

@rpo des nouvelles du serveur? des nouveaux pics de process?! si tout va bien, on peut peut-être fermer l'issue?! (Les mystères de l'informatique sont impénétrables !)

À noter que j'ai eu des bots en masse sur la démo Grimaldi les derniers jours et j'ai l'impression que le robots.txt à la racine n'est pas du tout effectif ou alors ils l'ignoreraient tous… ce qui me semble très douteux !!

J'ai pu suivre gwd pour un bout et rien trouvé d'anormal jusqu'à présent ou quelque chose qui peut laisser croire à un usage excessif du 'process' J'ai délibérément effectué un test de recherche avec indexation sur ce process gwd avec Httrack (https://www.httrack.com/) et le robot.txt répond immédiatement présent en bloquant le site. Donc on peut croire que robot.txt fonctionne à partir d'un certains seuil ?

Je suis maintenant hébergé sur Red Hat 8.5.0-20 x86-64 (64 bits) avec toutes les librairies GLC à jour.

J'ai hâte de voir pour l'option "robots" content="all" à venir pour les pages individuelles et les notes pour savoir comment réagit gwd/ robot .

Donc tout est beau jusqu'à preuve du contraire.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants