Forum Linux.général "Unresponsive script" : limiter Firefox

Posté par . Licence CC by-sa.
Tags : aucun
1
22
jan.
2019

Fatigue.

J'ai de plus en plus souvent ce genre de messages : «A script on this page may be busy» avec le script en question du style "chrome://browser/content/browser.js" (j'avoue ne pas me souvenir si c'est exactement celui là mais c'est un script du navigateur (tjrs chrome://browser/… )).
Le gros soucis c'est que ça arrive généralement après avoir laissé mon PC pendant quelques heures, et qd j'y reviens le processeur est à 400%, la RAM+swap sont pleines et ni la souris ni le clavier ne répondent (et vu les logs, le kernel a déjà commencé à sacrifier des child). Donc impossible de stopper le script en question…

J'avais déjà eu ces soucis avec Firefox et Thunderbird l'année dernière puis ça c'était réglé tout seul, sûrement avec une mise à jour (suis sous Arch) mais là c'est reparti de plus belle. Bref, j'aime FF, je n'ai pas envie de changer de browser, y a-t-il moyen de lui imposer des limites ? Par exemple le limiter à 80% d'utilisation du cpu et le tuer automatiquement si il dépasse une certaine quantité de RAM/SWAP ?

À vot' bon coeur

  • # Chrome ou Firefox

    Posté par (page perso) . Évalué à 2 (+0/-0).

    "chrome://browser/content/browser.js"
    S'agit-il bien de Firefox alors que le message d'erreur parle de Chrome ?

  • # Une extension pourrie ?

    Posté par . Évalué à 3 (+2/-0).

    Le premier truc à faire : essayer en redémarrant avec les extensions désactivées.

  • # comme personne n'en parle

    Posté par . Évalué à 6 (+4/-0). Dernière modification le 22/01/19 à 19:50.

    limits.conf

    Linux permet de borner les ressources allouées aux utilisateurs, ou aux groupes d’utilisateurs, via le fichier « /etc/security/limits.conf

    https://www.admin-linux.fr/controle-des-ressources-systemes-ulimit/

    alors a mettre en oeuvre c'est assez facile, mais a l’époque je n'ai trouvé aucun exemple sur internet pour le desktop, je donnais des valeurs par tâtonnement pour avoir un truc convenable et pas trop contraignant, petite astuce pour un débutant si tu mets des valeur trop faible linux ne démarrera pas ;) -> boot sur usb ou cd pour reparer

    je dirais que c'est très très efficace une fois trouvé les bonne limites pour ton utilisateur

    • [^] # Re: comme personne n'en parle

      Posté par (page perso) . Évalué à 5 (+3/-0). Dernière modification le 23/01/19 à 12:26.

      J'ai trouvé les cgroups pour faire ça facilement dans le desktop :

      #!/bin/sh
      
      # création du groupe basse priorité s'il n'existe pas encore
      # cpu.shares à 2 = n'utilise que du temps idle du CPU
      
      if [ ! -d /sys/fs/cgroup/cpu/limited ]
      then sudo cgcreate -a $USER:$USER -g cpu:limited -t $USER:$USER
              echo 2 > /sys/fs/cgroup/cpu/limited/cpu.shares
      fi
      
      SLOW="cgexec -g cpu:limited ionice -c3 nice -20 "
      $SLOW firefox
      

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Commentaire supprimé

    Posté par . Évalué à 1 (+0/-0). Dernière modification le 22/01/19 à 20:57.

    Ce commentaire a été supprimé par l'équipe de modération.

  • # À l’ancienne

    Posté par . Évalué à 3 (+1/-0).

    man bash
    /ulimit

    À noter que -m ne semble pas fonctionnel.
    C’est -v qu’il faut utiliser pour limiter la mémoire.

    Par exemple, pour limiter firefox à 2 Go de mémoire, le lancer avec un script contenant :

    #!/bin/bash
    
    ulimit -v 2097152
    exec firefox

    À noter que Firefox se vautre très salement quand il atteint la limite de mémoire. Ça peut être gênant si c’est au moment où tu es en train de faire quelque chose d’important (vu que de nos jours, on fait de plus en plus de trucs depuis un navigateur)…

    Théorie du pot-au-feu : « tout milieu où existe une notion de hauteur (notamment les milieux économique, politique, professionnels) se comporte comme un pot-au-feu : les mauvaises graisses remontent. »

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.