Thomas Debesse a écrit 3624 commentaires

  • [^] # Re: Mes p'tites blagues leur ont pas plu...

    Posté par  (site web personnel, Mastodon) . En réponse au journal Petites blagounettes de tout poil. Évalué à 10.

    C’est parce qu’il y a déjà trop de haine.

    ce commentaire est sous licence cc by 4 et précédentes

  • # Je ne pense pas qu’ils aient vraiment le choix

    Posté par  (site web personnel, Mastodon) . En réponse au lien Windows 11 permet de ressusciter Internet Explorer d’entre les morts (et invente le logiciel zombie). Évalué à 10.

    Je ne pense pas qu’ils aient vraiment le choix.

    Une des raisons du verrouillage de Microsoft sur le marché du bureau, ce sont toutes les applications qui utilisent des fonctions de Windows ou du Pack Office, et Microsoft Internet Explorer est un élément clé de Windows.

    On le sait avec le macros Office, etc. mais ça va beaucoup plus profondément dans des tas de petits détails qui semblent anodins.

    Ainsi par exemple de très nombreux logiciels ont des widgets qui ne sont que des composants de Windows, y compris d’Internet Explorer.

    Cas réel déjà vu: un logiciel de production, de gestion et de programmation radio pour radio FM, ici par programmation je veux dire « playlist », il s’agit d’enregistrer des émissions, de les classer et de programmer leur diffusion. L’interface d’édition des métadonnées de l’émission a un champ titre et une zone texte pour ajouter une petite fiche texte à l’enregistrement audio. Il y a un bouton pour mettre en gras et en italique ? Oh mais en fait c’est une <textarea> propulsée par Internet Explorer.

    Bam ! Internet Explorer ! Dans ta face l’Internet Explorer !

    Après ils ne pourraient peut-être conserver que certaines bibliothèques, mais c’est même pas sûr.

    D’ailleurs c’est exactement ce qui se passe dans la vidéo. À la base cette fenêtre de configuration « Propriété de : Internet » était en fait la configuration de Microsoft Internet Explorer, et l’est peut-être toujours, d’où le fait que certains boutons puisse faire des actions dans Internet Explorer.

    Par exemple cette fenêtre permettait de configurer le proxy pour Internet Explorer, il est probable que ce code de gestion et d’utilisation d’un proxy soit le code d’Internet Explorer et il est donc probable que tous les logiciels Windows utilisant les fonctionnalité intégrées de Windows pour utiliser un proxy HTTP utilise du d’Internet Explorer. Et peut-être qu’Edge lui-même utilise le code d’Internet Explorer pour utiliser le proxy système.

    Je me demande d’ailleurs si cette option « Gérer les modules complémentaires » n’est pas justement l’option de gestion de composant ActiveX, que seul Internet Explorer savait gérer, ce qui expliquerait en partie pourquoi ils ont besoin de non seulement conserver l’API d’Internet Explorer, mais aussi son interface graphique.

    ce commentaire est sous licence cc by 4 et précédentes

  • # 4 couleurs, c’est largement suffisant ! 🙂️

    Posté par  (site web personnel, Mastodon) . En réponse au lien WASM-4: une console de jeux fantaisiste à quatre couleurs. Évalué à 7. Dernière modification le 17 juillet 2022 à 04:18.

    Très intéressant, et 4 couleurs c’est largement suffisant pour faire des graphiques riches !

    Les jeux sur calculatrices TI (type TI89, 92, etc.) pouvaient afficher quatre niveaux de gris (blanc, gris clair, gris foncé, noir).

    Exemples (le bleu c’est parce que certains écrans de certains modèles avaient des pixels bleus et donc c’était physiquement des niveau de bleu):

    SolarStriker

    BomberMaze

    Mercury

    ChronoTrigger

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Economise l'énergie

    Posté par  (site web personnel, Mastodon) . En réponse au journal Le scanner hanté, wireshark et le wifi.. Évalué à 4.

    Je dirais même plus qu’actuellement, le « danger » est qu’une (très) grande partie des militants écologistes sont convaincu que ces petits pas suffiront.

    Comme on dit parfois, l’illusion de sécurité peut être pire que l’absence de sécurité…

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: > un vieux Nuc Intel de 10 ans

    Posté par  (site web personnel, Mastodon) . En réponse au journal Le scanner hanté, wireshark et le wifi.. Évalué à 3.

    En effet le N2820 est trop récent (pour mon besoin) !

    ce commentaire est sous licence cc by 4 et précédentes

  • # > un vieux Nuc Intel de 10 ans

    Posté par  (site web personnel, Mastodon) . En réponse au journal Le scanner hanté, wireshark et le wifi.. Évalué à 3.

    un vieux Nuc Intel de 10 ans, sous Ubuntu 21.10, que je mets à jour en 22.04. Je ne l’avais pas rallumé depuis 6 mois, et je voulais même le donner (j’en avais causé sur la tribune)

    Si par hasard la puce graphique est une GMA3150 ça m’intéresse, comme mentionné ici. =)

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 6.

    La solution que barmic et moi on essaie de te faire faire est: "il faut réserver la mémoire pour ces fichiers".

    Je rappelle que ma proposition initiale était de montrer qu’avoir plein de RAM ne signifie pas être à l’aise.

    Les histoires de Firefox et autres choses c’étaient des exemples pour soutenir cette proposition.

    Je ne suis pas non-plus venu chercher de l’aide. Je connais bien une bonne partie des solutions que vous avez proposées, je n’y ai parfois même pas répondu parce que c’est pas la peine, c’est hors sujet. Je montrais simplement que la consommation de mémoire augmente avec la taille disponible et que donc on ne peut pas supposer qu’ajouter de la mémoire résolve tous les problèmes rencontré avec moins de mémoire.

    Prenons l’argument du ramdisk en tmpfs auquel j’ai peu répondu et pour cause : je connais cet outil, mais je m’y suis pas vraiment attardé car la contradiction présuppose que je ne m’en serve pas déjà, et ne confirme ni ne contredit l’hypothèse qu’avoir plein de RAM ne signifie pas être à l’aise.

    Je pratique le ramdisk depuis plus d’une décade au moins, je sais que ça existe, et de nombreux outils que j’écris supposent qu’un ramdisk est actif pour en tirer le maximum de performances, exemple en 2015, exemple en 2017, exemple en 2018. Mais j’ai à peine pris la peine d’y répondre parce que ça pollue le sujet initial.

    Mais par exemple je peux dire qu’un ramdisk ne peut pas “réserver la mémoire pour ces fichiers”, non, ça ne réserve pas la mémoire pour ces fichiers:

    # mkdir /mnt/ramdisk
    # egrep '^MemAvailable:' /proc/meminfo
    MemAvailable:   204927896 kB
    # mount -t tmpfs tmpfs /mnt/ramdisk -o size=100G
    # egrep '^MemAvailable:' /proc/meminfo
    MemAvailable:   204880508 kB
    

    Ce qui réserve la mémoire c’est d’écrire un fichier dans ce ramdisk. Ça veut dire que c’est complètement dépendant du moment, de l’état en cours des tâches, etc. Une application comme Firefox ne va pas s’empêcher de grossir entre deux tâches, et quand un gros fichier va être copié, il y a de fortes chances que ce soient d’autres applications qui soient déplacées vers le swap pour conserver la taille de Firefox en mémoire.

    Bref, ça va, je connais ces outils. Selon les besoins j’utilise des ramdisks, j’utilise bcache pour avoir un cache en lecture et écriture sur SSD, j’utilise le cache mémoire, et selon les besoins j’utilise telle ou tell solution plus adaptée, et les combines. Si le cache mémoire est le plus simple à mettre en œuvre et qu’il suffit de killall -9 firefox je ne vais pas m’embêter à mettre en œuvre un workflow plus complexe. Par contre à pratiquer toutes ces différentes méthodes j’ai assez de connaissance pour dire que non, ajouter de la mémoire ne fait pas disparaître magiquement certains problèmes parce que oui, ajouter de la mémoire augmente la consommation mémoire.

    Tu remarqueras que barmic ignore les autres exemples qui ne nourrissent pas sa contradiction, comme le cas d’usage de compiler LLVM et Mesa en mode Debug et où une seule tâche de link de certains fichiers de LLVM peut manger 8Go de RAM, ce qui veut dire que pour compiler rapidement LLVM en mode Debug, le nombre de jobs à passer à cmake est min(mémoire disponible / 8, nombre de cœurs). Faire un bisect de LLVM en même temps que Firefox décide de bouffer 100Go parce qu’il le peut ça peut augmenter la durée du bisect de plusieurs heures. Et là je ne vois pas comment un ramdisk va aider, et là encore un killall -9 firefox est le plus efficace, quitte à le réouvrir immédiatement pour un ou deux onglets nécessaires en laissant les autres non-encore chargés.

    Si je ne suis pas venu chercher de l’aide ça ne veut pas dire que je n’accueille pas avec un bienveillance un quelconque conseil, il y a forcément des choses que je ne connais pas. Mais à la base la conversation portait sur l’impact d’ajouter de la mémoire à un système et l’éventuelle disponibilité de celle-ci.

    De même, je n’ai pas de problème avec la contradiction mais ici on voit bien qu’est nourrie une contradiction artificielle en cherry-pickant, fabriquant des hommes de paille (exemple), au point que certains pourraient en venir à supposer mes intentions et mes besoins en fonction de cela, comme quand tu écris « La solution que barmic et moi on essaie de te faire faire est […] » alors qu’à aucun moment cela ne répond à un besoin de ma part.

    Ce n’était que des exemples pour appuyer ma proposition que la conso mémoire augmente avec l’ajout de mémoire et que ça peut avoir des effets de bord. L’exemple même de l’emploi explicite du cache disque n’est cité que parce que c’en devient plus facile à mesurer et donc l’exemple est pratique pour montrer que tel ou tel comportement a des effets de bords. C’était tout. Et même pour celui qui laisse son système décider de quoi mettre en cache disque, l’embonpoint d’un programme aura tout de même un impact sur le cache disque et donc les i/o, mais dit comme ça c’est pas facile à mesurer donc j’ai pris un exemple certes plus rare mais plus facile à mesurer. C’était tout.

    À force d’affiner la conversation on se rend tout de même compte que le message final porté par barmic, le véritable sujet sous-jacent, c’est l’idée que tu reformules là:

    Je pense que le comportement de Firefox est très logique: tu possèdes une machine qui a de la mémoire disponible, il n'y a aucune raison de ne pas l'employer par défaut.

    Ça c’est en fait une idée profonde qui sous-tend cette discussion, on le remarque d’ailleurs avec la caricature de barmic du principe d’économie en « frugalité ». Cette vision des choses est une idéologie. Ce sujet n’est pas technique.

    Le principe d’économie est un principe essentiel, ce n’est pas parce que le litre de super coûterait 10 centimes le litre qu’il faudrait faire des voitures qui consomment 50l/100km, car même en ignorant complètement l’aspect écologique ça aurait un impact sur toute la logistique, et peut-être même la charge de travail des travailleurs de cette logistique. De même une application qui grossit beaucoup va avoir un impact sur le temps d’écriture en swap (et le nombre d’écriture sur le disque swap) et les ressources associées quand elle sera en sommeil et que le système va vouloir la mettre en swap, c’est encore de la logistique ! Ce sont des ressources physiques avec un coût d’acquisition, un coup d’utilisation, etc. Dans le cas de Mimoza qui n’a pas de swap, ce coût logistique sera supprimé, mais pour toute personne qui a un swap, il sera présent. Au final, c’est un cas très particulier (ne pas avoir de swap) qui compense exceptionnellement le surcoût logistique de cette idéologie.

    Je ne sais pas si cette idéologie a un nom, mais c’est l’idéologie très répandue que toute ressource disponible peut être exploitée à son maximum. C’est une idéologie certes dominante mais elle est aussi très particulière, ne va pas nécessairement de soi si on se décentre du contexte et, et cette idéologie a le droit d’être questionnée.

    Je pense que le comportement de Firefox est très logique: tu possèdes une machine qui a de la mémoire disponible, il n'y a aucune raison de ne pas l'employer par défaut.

    Redéfinissons la situation dans un autre contexte : un homme a un enfant et un appartement 3 pièce. Son gosse a ses jouets rangés dans l’armoire, et il y en a deux-trois qui traînent dans le séjour et dans sa chambre. L’homme s’installe à son compte, déménages, il a désormais 4 pièces à vivre (y a deux jumeaux qui s’annoncent) plus un grand garage pour préparer des choses pour son boulot et entreposer du matériel plus un bureau où il va s’installer pour faire de la télémaintenance. Son gosse ne se sert plus du tout de l’armoire sauf pour un seul jouet qu’il a déjà oublié, il y a un jouet par terre tous les deux mètres et quand il a fini de jouer avec l’un il le repose par terre. Qui dira que « Je pense que le comportement du gosse est très logique, il y a l’espace disponible il n’y a aucune raison de ne pas l’employer par défaut. » ? Un autre enfant peut-être, mais pas son père ou sa mère, le responsable des ressources et de la logistique.

    J’ai par exemple supposé que les développeurs de Firefox ne doivent pas supposer que la ressource disponible est disponible pour Firefox, et j’ai donné un exemple allant en ce sens : il y a peu de chance que quelqu’un ajoutant 100Go à une machine ajoute ces 100Go pour Firefox. Cet exemple défend l’idée que le principe d’économie est tout à fait recevable. Alors ce principe a été explicitement caricaturé en « frugalité ». Le débat n’est plus technique.

    Et on touche à un autre concept : le concept d’idolâtrie. L’idolâtrie c’est le fait d’affecter des ressources à quelque chose qui n’en mérite pas. Par exemple, un homme a plein d’affaires, il faudrait qu’il s’en sépare, il ne le fait pas, le jour où il doit déménager, soit il achète un appartement plus grand et il paie littéralement un crédit pour stocker ces affaires, soit il sacrifie sa qualité de vie pour ces affaires et dans les deux cas ses affaires sont des idoles. Ou alors, autre exemple, son coffre de voiture est plein d’affaires à ranger mais il les laisse-là, et donc à chaque déplacement il dépense du carburant pour transporter ses affaires, ces choses sinon la procrastination à ne pas les ranger deviennent des idoles à laquelle il sacrifie son propre salaire.

    Il y a une fibre, de la RAM, du CPU à gogo, et une ligne électrique reliée à une centrale nucléaire, il n'y a aucune raison de ne pas les employer ? Bah si, le principe d’économie, et le principe d’économie ça n’est pas une caricature de frugalité.

    Décider d’affecter une telle ressource à Firefox, à part peut-être dans des cas très particulier, c’est de l’idolâtrie. Et Internet ne dors jamais, l’idole est donc un monstre à gueule ouverte où l’on sacrifie ses enfants sans que jamais l’idole ne soit rassasiée. C’est pour ça par exemple que je fais souvent un killall -STOP firefox quand je verrouille ma session pour qu’il cesse de mouliner, tout en évitant le coût d’une extinction et un redémarrage complet de Firefox. Pourtant on pourrait dire que les ressources CPU, mémoire, disque et réseau sont disponibles et qu’il serait donc logique de les exploiter autant que disponible pour que les pages et autres applications web soient 100% à jour à tout instant.

    L’autre chose gênante que barmic a semé dans ses commentaires et peut orienter l’interprétation de mes propres paroles, c’est le fait d’en faire des problèmes entre personnes et des problèmes d’intention.

    Par exemple j’ai parlé de décision, c’est neutre, c’est un constat factuel. Si je dis que lorsqu’un développeur de Firefox décide d’attribuer la mémoire disponible à Firefox il décide que ce sont les développeurs des applications web qui sont les utilisateurs de ma machine, c’est un constat factuel, ce n’est peut-être même pas son intention, mais factuellement, l’un implique l’autre. Je ne suppose pas l’intention, il n’y a pas de jugement. Il s’agit simplement d’établir la chaîne de responsabilité ou simplement la chaîne de réaction pour identifier là où les choses sont introduites. Il y a aussi plein de situation dans la vie où décider d’une chose décide d’autres choses, des effets de bord, etc. Mais il faut pouvoir identifier quelle décision a entraîné quel effet de bord pour diagnostiquer proprement le problème et le traiter. Et ne pas prendre une décision peut parfois être une décision, ne serait ce qu’en priorisant d’autres points de décision à traiter. Et ce n’est pas mal ou bien, mais c’est un diagnostique nécessaire. Il ne s’agit pas de chercher un coupable, un bouc émissaire, de supposer des intentions maléfiques.

    Et pourtant voici ce qui a été écrit :

    À part si tu les prend à parti en prenant comme hypothèse qu'ils sont sciemment contre toi.

    C’est hyper gênant parce que ça, ça suppose et réinterprète a posteriori ce que je dis en proposant une lecture très orientée de mes propres paroles, ce qui pourrait encore d’autres réponses et contradictions fondées sur du vent.

    Bref, on perd notre temps. À la base je disais simplement qu’augmenter la mémoire pouvait augmenter la consommation mémoire, mais dire cela rappelait que le principe d’économie existe. Et l’existence de ce principe questionne une idéologie dominante, et la conversation en est venue à caricaturer le message (principe d’économie transformé en « frugalité ») et à caricaturer le porteur du message (supposer un délire de persécution). Il n’y a pas de solution technique à ce problème.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Où se passe le suivi des développements ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Flask: ~4K commits, ~2.5K bugs fermés, 0 bugs ouverts. Évalué à 3. Dernière modification le 09 juillet 2022 à 17:06.

    Ce n'est pas parce que quelqu'un sur linuxfr se questionne vis à vis de certains indicateurs que le choix de fonctionnement du projet flask est un moyen de sacrifier à la religion des indicateurs.

    À quel moment je dis que le projet flask sacrifie à la religion des indicateurs ?????

    Tout ce que je dis c’est qu’il est possible à tout lecteur de cette discussion de sacrifier à la religion des indicateurs en appliquant la méthode de flask ou en évaluant les résultats de flask de cette manière.

    C’est bien à ce journal que je réponds. Comme le dit barmic qui confirme encore qu’il fait des suppositions étranges pour contredire:

    la page sur la quelle nous sommes et qui n'a aucun lien avec les membres du projet

    Je réponds à la page sur laquelle nous sommes et qui n’a aucun lien avec les membres du projet.

    Il ne faut pas se servir des suppositions et autres affirmations extrapolées de barmic sur ce que je dis pour interpréter ce que je dis.

    La confusion est dans le commentaire de barmic qui donne a posteriori un sens différent à mon commentaire, c’est ce qui permet de nourrir sa contradiction complètement artificielle.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Où se passe le suivi des développements ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Flask: ~4K commits, ~2.5K bugs fermés, 0 bugs ouverts. Évalué à 5.

    À part ici je n'ai rien vu qui faisait mention de ses indicateurs

    Le titre de la publication à laquelle nous répondons tous, y compris toi:

    Flask: ~4K commits, ~2.5K bugs fermés, 0 bugs ouverts

    Ce sont des indicateurs.

    Je t’invite à questionner ton besoin de contradiction.

    Ça peut juste être bien plus facile pour une équipe réduite de gérer comme ça.

    J’ai écrit :

    Ce n’est pas une mauvaise idée en soit de mettre en œuvre un hall d’entrée qui permette de faire le tri et de caractériser avant de faire un ticket propre.

    Donc je répète : je t’invite à questionner ton besoin de contradiction.

    Soit tu contredis en étant à côté de la plaque, soit tu répètes ce que celui à qui tu réponds a déjà dit… mais avec une formulation contradictoire. C’est quoi le but ?

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Où se passe le suivi des développements ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Flask: ~4K commits, ~2.5K bugs fermés, 0 bugs ouverts. Évalué à 2.

    Ah oui donc c’est juste une autre moyen de sacrifier à la religion des indicateurs. Attention, je ne dis pas que c’est pas bien, ils ont simplement déporté la liste de ticket que les autres ont. Ce n’est pas une mauvaise idée en soit de mettre en œuvre un hall d’entrée qui permette de faire le tri et de caractériser avant de faire un ticket propre, ce qui signifie aussi qu’à la fin le ticket propre tu peux le mettre en lien quelque part et il est concis et efficace. Mais ça veut dire qu’à la fin, la liste d’issue et de PR ne sont pas du tout des indicateurs représentatifs (en comparaison avec d’autres projets qui fonctionnent différemment) car ce qui peut y être listé dans d’autres projets est intégralement externalisé.

    Il y a aussi des projets qui ont des bug trackers externes, donc là aussi la liste de ticket est vide, elle est même absente. Ça rappelle simplement que la méthode GitHub n’est pas l’alpha et l’oméga des méthodes de travail et qu’on ne peut hâtivement supposer la représentativité de tel ou tel indicateur spécifique à la méthode GitHub.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 0.

    À part si tu les prend à parti en prenant comme hypothèse qu'ils sont sciemment contre toi. Je ne doute pas qu'avoir un retour détaillé sera apprécié.

    T’as vraiment un problème personnel.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: "médias tech indépendants"

    Posté par  (site web personnel, Mastodon) . En réponse au journal Next INpact lance un S.O.S.. Évalué à 10.

    Là aussi, il y a une confusion avec la neutralité

    C’est bien de le rappeler aussi, car même dans les médias de grande écoute (type télé BFM) j’ai pu constater la confusion.

    Par exemple quand Livre Noir a fait ses reportages en Ukraine, ils ont rappelé à leurs auditeurs qu’ils avaient besoin de sous pour soutenir leur travail “indépendant”, et j’ai vu une journaliste de télé commenter en disant un truc du genre « ils se prétendent indépendant mais ils sont de droite »… 🤦‍♀️️ Pour le coup je me suis demandé si le concept d’indépendance était par nature étranger à l’environnement professionnel de la journaliste en question, ce qui pouvait expliquer la confusion avec la neutralité.

    On pourrait faire la même avec le canard ou autre… Avoir un parti pris, une orientation, des biais invincibles, des affections particulières… ou même des mensonges n’empêche pas d’être indépendant comme un plombier à son compte sera indépendant quelque soit sa spécialité, son talent, ses défauts et même ses possibles escroqueries.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Partir à neuf..

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Samba 4.16.x. Évalué à 5.

    J’ai ajouté la partie spécifique à samba à la doc samba mais je ne sais pas si ça arrive sur un site en ligne (pas sur le wiki on dirait). Et je n’ai pas ajouté au wiki samba, c’est une bonne idée.

    Normalement ces deux lignes sont suffisantes. J’ai peut-être fait une faute de frappe: C’est peut-être un # au lieu d’un : pour le port (cf. dnsmasq.conf.example).

    # dnsmasq.d/server.conf
    server=/local-domain.example.com/127.0.0.1#54
    
    # smb.conf
    dns port 54
    

    Aussi (histoire d’éviter toute confusion), je suppose que local-domain.example.com soit le parent (pas le nom de la machine).

    Par exemple si ton réseau s’appelle mycompany.org et que ton serveur AD samba s’appelle choucroute, le FQDN du serveur est choucroute.mycompany.org, et la configuration dnsmasq sera:

    server=/mycompany.com/127.0.0.1#54
    

    Mais si le FQDN de ton serveur AD est choucroute.intra.mycompany.org, alors la configuration dnsmasq sera:

    server=/intra.mycompany.com/127.0.0.1#54
    

    Bien sûr en supposant que le dnsmasq et la samba-ad-dc sont sur la même machine.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 4. Dernière modification le 05 juillet 2022 à 18:32.

    On va redéfinir le concept de frugalité.

    Là tout de suite, mon bureau. J’ai redémarré la machine il y a 5 jours, et quand j’ai ouvert Firefox il y a 5 jours je n’ai pas réouvert les onglets précédents.

    J’ai deux client chat, IRC et Matrix, Firefox de lancé, un lecteur de flux RSS (liferea), quelques fenêtres nautilus (explorateur de fichier), quelques émulateurs de terminal (terminator), quelques vim, un gedit et un ghostwriter (éditeur markdown). Je suis tranquille en train de faire du texte. Pas de gros calcul, pas de gros fichier ouvert. Je rédige des tickets et je rapporte des bugs. Thunderbird est même fermé.

    crazy memory

    Là tout de suite, dans les 10 premiers plus gros processus, il y a en premier nautilus qui fait plus de 6Go, ensuite le processus parent de Firefox fait presque 3Go et écrit à un peu moins de 1Mo/s. Ensuite les 8 premiers onglets font entre 1.1Go et 2.4Go chacun, et ça continue comme ça. 1Go l’onglet.

    Et ça c’est après avoir plafonné le cache mémoire de Firefox et réduit sa propension à écrire.

    crazy memory

    6Go l’explorateur de fichier, 1Go par onglet Firefox, ça fait quoi ? Ça fait ça, 55Go de mémoire occupée alors que je suis en train de rédiger des rapports de bug. Et Gnome shell fait un petit peu moins d’1Go et en démon Gnome Software aussi (il sert à quoi, lui ???).

    crazy memory

    Alors on sera carrément d’accord : 55Go ce n’est que 20% de la mémoire, et sur le graphique on voit bien que je suis très loin de manquer de mémoire. Là tout de suite je ne suis pas du tout gêné dans ma rédaction de ticket (ni dans la rédaction de ce commentaire). OK, tout à fait. Mais, euh, trouver cela anormal c’est réclamer de la frugalité ? Vraiment ? Là on ne sera pas d’accord.

    Bon par contre le nautilus qui fait plus de 6Go je vais devoir le tuer parce que là il laggue jusqu’à deux secondes quand je fais un clic droit et quand je fais un glisser déposer ça menace d’échouer tellement il aime pas ça.

    Alors bon, oui, ça va, pour le moment ça va. C’est 55Go mais il en reste encore 4 fois ça… Donc à part nautilus, c’est super fluide. On voit d’ailleurs que les cœurs se tournent les pouces. Mais quelques onglets pourraient choisir de se recharger en scrolling infini, ça pourrait tout changer, héhé.

    Sauf que, voilà par exemple une copie d’écran de mai dernier, c’est le jour où j’ai découvert la clé pour limiter le cache mémoire de Firefox, j’ai pris cette copie d’écran quelques minutes avant que je ne découvre cette clé. Et j’ai pris cette copie d’écran quelques secondes après avoir tué les 5 ou 6 plus gros onglets de Firefox:

    crazy memory

    Après voir tué les 5 ou 6 plus gros onglets de Firefox, j’étais tombé à 41% de mémoire occupée avec plus de 120Go d’utilisation, et on voit bien qu’avant cela j’étais à plus de 50% de mémoire occupée et que je venais de libérer 30Go en tuant 5 ou 6 onglets. Il y avait aussi 30Go en swap après avoir tué ces onglets, mais ont voit bien que de la swap a été libéré, et attention, il y a le double de swap donc sur le graphique ce n’est pas environ 55Go par 20% mais 110Go par 20%, donc environ 10Go ont été libéré. Donc, plus de 150Go en ram et plus de 40Go en swap ça fait environ 200Go.

    200Go, LOL, frugalité.

    Breaking news: acheter N de mémoire en plus de celle existante n’ajoute pas N de mémoire disponible en plus de celle existante. C’est faux. Celui qui paie 64Go pour en rajouter à ce qu’il a déjà, n’en verra peut-être en fait que 32 ou 16Go en plus, car boom, certaines applications qu’il utilisait déjà vont manger une grosse partie de cet investissement, et ce avant même de lancer les autres applications pour lesquelles il avait mesuré le besoin de supplément.

    Et puis comme je l’expérimente avec nautilus là tout de suite, en fait les applications tournent moins bien pour diverses raisons quand elles prennent autant d’embonpoint. Parfois je tue et relance Firefox non pas pour récupérer la mémoire, mais pour retrouver des performances potables (et arrêter de voir mon processus chauffer à traiter ça).

    Mais certaines applications ne font pas ça. GIMP par exemple reste stable sur la durée, et j’en oublie de grandes images laissées ouvertes pendant des jours. Pourtant traiter de grandes images non-compressées avec des calques ça prend de la mémoire, mais ça ne se met pas en travers de mon chemin.

    Lol, frugalité. 🙃️

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 5. Dernière modification le 05 juillet 2022 à 12:55.

    Thomas souhaiterait qu'il soit dans l'économie et la frugalité

    Dialogue de sourd. Oui l’économie, parce que c’est toujours un bon concept l’économie.

    Mais je parle de Firefox qui n’a pas de plafond autre qu’un pourcentage de la mémoire et qui peut aller manger 50Go de RAM s’il le peut. À quel moment il devient logique d’affecter 50Go de RAM au fait de naviguer sur Internet ? À quel moment on suppose que si un tel investissement a été fait, il n’y a rien qui cloche dans le fait de l’affecter à la navigation sur Internet ? Dans ce contexte-là ça ne me dérange pas trop que Firefox bouffe 10Go, et ça c’est pas du tout frugal ! Il y a des gens qui n’ont que 8Go de mémoire et Firefox s’en sort, donc 10Go ce n’est pas frugal. Le problème que je pointe c’est qu’une application peut décider de s’étaler énormément (50Go, 100Go…), avec des ressources qui ne sont pas gratuites, et qui sont très certainement achetées pour autre choses. Si tous les programmes faisaient ça ce serait invivable, d’où ma comparaison avec les années autour de 2005 où tous les programmes du monde décidaient de se lancer dès le démarrage pour que les lancements suivants soient plus rapide, et on se retrouvait avec un ordi à genoux quand on voulait faire autre chose. La question c’est aussi : qui est l’utilisateur de ta machine dans laquelle tu as investi ? Toi ? Le développeur de Firefox ? Le propriétaire d’un site web ? Firefox décide que c’est le propriétaire du site web que tu consultes.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 4.

    Un autre problème commence à remonter : déjà deux personnes ont rapporté que le jeu Unvanquished crash sauf s’ils ferment leur navigateur avant de lancer le jeu (vérifié avec Vidaldi chez l’un et Firefox chez l’autre).

    L’un a explicitement reçu un message comme quoi ça manquait de “GPU memory”, l’autre a un GPU intégré qui partage la mémoire avec le CPU:

    Le titre du ticket est… croustillant, il n’est pas de moi. 🙃️

    Alors que les navigateurs s’étalent en RAM, il semblerait aussi qu’ils s’étalent en VRAM.

    Unvanquished est très économe : la quasi intégralité des textures utilisées par Unvanquished sont précompressées avant release et sont chargées compressées en VRAM, et traitées par le GPU sans les décompresser (la techno existe depuis les années 1990). Je fais tourner Unvanquished sur des GPUs qui ont 20 ans. La configuration minimale c’est 2Go de RAM et 64Mo de VRAM et j’ai vérifié cela. Alors bien sûr ceux qui ont rapporté le problème n’utilisaient probablement pas le preset “lowest” ni une résolution VGA, mais c’est pour dire que le jeu ne s’étale pas beaucoup. Il y a peut-être moyen de faire encore plus optimisé mais on n’a vraiment pas à rougir.

    Mais voilà, les gens commencent à rapporter que pour pouvoir jouer au jeu il faut d’abord fermer le navigateur 🤦‍♀️️, et celui qui a un CPU/GPU Ice Lake, c’est du matériel de 2019 ! Il doit fermer Firefox pour jouer ! 🤯️

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 7.

    Oui mais c’est fatiguant car le chemin vers les fichiers change. Prenons un exemple assez usuel, le montage de vidéo. Si tu produit une vidéo avec kdenlive, le fichier projet contient des liens vers les autres fichiers utilisés (rushs vidéo, images, sons…), pour que les chemins ne soient pas cassés il faudrait faire un mount -o bind depuis le tmpfs vers le dossier d’origine…

    Mais de toute façon ça ne change pas vraiment le problème de départ : je ne crois pas qu’il y ait une seule personne sur la planète qui décide d’investir dans un supplément de 100Go de ram pour l’usage de Firefox, ainsi donc il est raisonnable de penser que s’il y a 100go de libre, Firefox ne doit pas décider « oh trop bien je peux m’étaler ». Ne pas avoir de plafond par défaut est absurde.

    Et s’il y a un utilisateur sur la planète qui veut ajouter 100go de ram que pour Firefox, celui-là peut changer le plafond. À partir de, disons, 16 ou 32go de ram dans un PC il est raisonnable de penser que l’écrasante majorité des gens qui rajoutent encore de la ram après ça l’achètent pour autre chose que Firefox… Ça coûte cher la ram et Firefox marche bien entre 16 et 32go de ram (déjà avec 8 c’est pas si mal). Quelqu’un qui investit des centaines d’euros dans plus que 32go de ram a forcément d’autres besoins que Firefox, et ces autres besoins sont énormément plus diversifiés que le besoin d’utiliser Firefox.

    ce commentaire est sous licence cc by 4 et précédentes

  • # L’autre enjeu : la fabrication des sources (Wikipédia, etc.)

    Posté par  (site web personnel, Mastodon) . En réponse au lien Moi, journaliste fantôme au service des lobbies…. Évalué à 10.

    L’autre enjeu de ces pratiques c’est la rédaction de Wikipédia et autres ouvrages sourcés.

    Wikipédia exige de sourcer ce qui est affirmé, ce qui est tout à fait normal. Pour le partisan de telle ou tell opinion il est donc nécessaire de s’extraire de l’exigence de la [référence nécessaire] en externalisant les affirmations dans des médias qui seront alors inclus comme source. Ces médias ne permettent évidemment pas à tout un chacun d’ajouter une balise [référence nécessaire], il devient donc possible d’affirmer un peu tout et n’importe quoi.

    Par exemple c’est comme cela que tel ou tel journal dans tel ou tel article va prétendre que telle ou telle personnalité serait proche tel ou tel groupuscule par exemple, sans aucune preuve ni aucune vérification. Mais cela produit une source qui permet alors de reproduire cette affirmation dans un autre ouvrage sourcé comme Wikipédia.

    Les sources primaires produisent des sources secondaires, etc. Ce genre d’agence ont le rôle de produire des sources primaires (on le voit avec les profils fictifs des prétendus auteurs) et aussi les sources secondaires (en se nourrissant des sources primaires déjà produites, y compris par d’autres agences).

    Ces articles fabriqués nourrissent aussi tout le business des « débunker » qui associés ensemble avec ces agences de rédaction de tout et de rien peuvent être de véritables usines de propagandes. Les plus anciens se souviendront de la campagne « Get the fact » de Microsoft, grand précurseur de certains « débunkers » industriels qui ne sont aujourd’hui qu’un corps d’armée parmi d’autres dans un même champ de bataille de l’information.

    La levier sur la rédaction des ouvrages sourcés se réalise aussi d’autres manières : en choisissant de quels sujets traiter. Celui qui décide quels sujets sont traités et lesquels ne le sont pas est en fait le véritable écrivain du récit, et celui-là ne rend de compte à personne.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Ha les dernières lignes...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Moi, journaliste fantôme au service des lobbies…. Évalué à 10.

    J'ai été surpris par la partie Linky, mon expérience de Linky est à l'opposée des exemples fournis, combien d'article à la con généralisant des cas ponctuels à la façon antivax

    Le problème c’est que tu as tendance à juger une opinion au faciès des porteurs d’opinion et non à la valeur des arguments qui pourraient exister si tu ne t’arrêtais pas à tes réactions primaires comme le déshonneur par association ou le présupposé que la surface est significative du fond. Je ne connais pas le sujet de Linky mais comme dans tous sujets ma posture prudente c’est qu’il y nécessairement des personnages et des discours caricaturaux (ce qui n’est pas propre au sujet mais à la nature humaine tout simplement) et je ne peux exclure par avance qu’il pourrait y avoir des arguments sérieux chez les opposants (ou les partisans).

    Plus un sujet touche de monde, plus il y a de chance de trouver des arguments complètement pétés quelque soit l’opinion défendue. La présence d’un argument pété en faveur de telle ou telle opinion n’est donc pas significative de la valeur de telle ou telle opinion (et/ou de la réalité des faits). C’est pour ça que les sujets comme le Linky, les vaccins, la 5G, etc. drainent énormément de trucs complètements pétés car ils sont déployés à l’échelle de l’intégralité de la population d’un pays, c’est énorme. Ça ne veut pas dire qu’il ne pourrait pas y avoir de vrais sujets honnêtes avec des arguments honnêtes.

    En fait cette réaction de rejet primaire face à des sujets de ce genre qui touchent la population et donc provoquent des réactions populaires (avec la couleur populaire inévitable) n’est qu’une manière de s’extraire de la masse, une forme d’élitisme de classe et une posture hipster : « ah mais ça c’est une préoccupation de plèbe, je ne suis pas de ces gens-là ».

    Bref, intéressant mais à prendre avec recul et une source que parmi d'autres pour se forger une opinion

    Tu ne tiens ce discours de « recul » et de « source parmi d'autres » que quand il s’agit de défendre ta première impression quand ta première impression est le doute, ou que le discours auquel tu es confronté est contraire à ta première impression. C’est bien mais normalement ça doit se faire dans tous les cas.

    ce commentaire est sous licence cc by 4 et précédentes

  • # « Application web » == Google Chrome + Microsoft Office + Microsoft Windows

    Posté par  (site web personnel, Mastodon) . En réponse au journal De retour aux années 2000 avec EDF. Évalué à 10. Dernière modification le 26 juin 2022 à 00:47.

    Il y a quelques années un client a changé de logiciel de CRM, il n’était pas vraiment décideur sur ce sujet : il faisait partie d’un groupe qui décidait pour lui pour de ce logiciel (pour tous les autres logiciels il pouvait faire ce qu’il veut). Jusque là pour tout ce qui était bureautique ordinaire tout le monde dans sa boîte utilisait Firefox et LibreOffice. Le nouveau logiciel était un produit Salesforce et était vendu comme étant « une application web ».

    Mais en fait, d’une part cette « application web » ne fonctionnait qu’avec le navigateur Google Chrome, mais en plus il fallait avoir Microsoft Office installé sur le même poste de travail. Le client a donc dû acheter le pack Office pour tous ses postes et j’ai donc dû déployer Google Chrome et Microsoft Office sur tous les postes. « Heureusement il utilisait déjà Windows », j’ai envie d’ajouter.

    À croire que la seule vraie différence avec ce genre d’application soit le fait de pouvoir basculer d’une application à l’autre dans les onglets de Google Chrome plutôt que dans la barre des tâches de Windows, ce qui n’est pas un plus, en fait.

    ce commentaire est sous licence cc by 4 et précédentes

  • # Outil de création de clé USB

    Posté par  (site web personnel, Mastodon) . En réponse au journal UEFI : y'a pas que les linuxiens qui pleurent…. Évalué à 10.

    Microsoft ne fournit Windows sous forme d’iso DVD mais fournit aussi un outil pour transformer l’iso en clé USB bootable. Mais pour cela il te faut déjà un Windows en plus de l’iso et de la clé USB.

    Ce que tu peux faire c’est d’installer un Windows avec l’iso dans une machine virtuelle, une fois ceci fait, tu montes la clé USB dans la machine virtuelle, tu utilises l’outil qui va formater et préparer la clé USB, et voilà ! Tu as une clé USB d’installation de Windows. C’est chiant mais ça marche. Et une fois que tu as fait cette clé USB d’installation Windows, tu la copie avec dd quelque part pour pouvoir faire d’autres clés si besoin avec dd à nouveau, (et ça, ça marche bien) !

    Mais sinon, à propos d’UEFI, je ne comprend pas pourquoi par défaut l’installation UEFI n’est pas portable (sans modifier une mémoire sur la carte-mère ou je-sais-pas-quoi) c’est super chiant et une énorme régression à mes yeux. Maintenant j’installe mes Linux avec l’option --removable de grub-install, car si une machine tombe en panne, je veux pouvoir déplacer les disques dans la machine d’à côté et booter sans autre configuration.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Partir à neuf..

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Samba 4.16.x. Évalué à 6.

    Oui tout à fait. J’ai eu des parcs où 100% du l’infra serveur/routeur/etc. était sous Linux et 99% des bureaux était du Windows (avec deux trois linux et macs minoritaires). Ce qui est certain est qu’on peut tout à fait avoir un parc 100% Windows sur les postes de travail, que ce soit à cause des besoins applicatifs, de certains matériels spécifiques (j’ai travaillé pour une exploitation viticole par exemple, je ne crois pas que l’imprimante d’étiquette à bouteille avait un pilote Linux :D), et avoir l’intégralité de l’infra de service sous Linux.

    Et si besoin, rien n’empêche d’avoir une machine virtuelle pour un besoin spécifique. Par exemple on peut très bien avoir un « manager » d’antivirus dans une machine virtuelle Windows pour administrer les antivirus clients sur les postes Windows, mais la gestion du réseau, des droits, le stockage, que tout soit géré sous Linux.

    Ce qui est certain c’est qu’avoir un parc utilisateur 100% Windows n’est pas du tout un argument en défaveur d’avoir une infra Linux, « on a déjà du Windows sur les postes » ou « il nous faut du Windows sur les postes » n’est pas un argument contre Linux sur les serveurs. De toute façon le décideur qui dirait ça pourrait acheter un Synology parce que quelqu’un lui en a parlé ou qu’il en a un à la maison, sans se rendre compte que c’est un Linux+Samba dedans (la magie de la boîte noire avec une belle étiquette qui, parce qu’elle forme un « produit », se soustrait à tous les discernements ordinaires).

    En soi être confronté à un parc de postes de travail 100% Windows est très instructif car Microsoft a bien dû apporter des solutions à des problèmes réels de leurs clients réels, donc autant appliquer les mêmes méthodes si elles fonctionnent, quand elles font sens et qu’elles sont éprouvées, plutôt que réinventer la roue. Ça n’a d’ailleurs plus vraiment de rapport avec la question libre/pas libre puisqu’aujourd’hui des outils comme Samba existent. Bon il y a des trucs qui m’énervent un peu dans l’infra Windows, mais si on m’interdisait d’utiliser Samba je ne vois pas pourquoi je devrais faire sans une infra NTP/DHCP/LDAP/Kerberos, que l’identifiant s’appelle samAccountName au lieu d’username est une windowserie dont je me passerai bien mais bon 🤫️…

    À noter que passer à une infra de type AD que ce soit avec Samba ou Windows Server peut apporter des problèmes, mais c’est pas la faute de Samba, les problèmes sont les mêmes sous Windows : des tas d’applications ne sont pas pensées pour un environnement d’entreprise de ce genre. Par exemple certaines applications enregistrent des préférences ou des données dans AppData/Local au lieu de AppData/Roaming, je ne sais pas où ça en est mais par exemple il y a quelques années j’avais remarqué chez un utilisateur que même l’application « post-it » de Windows enregistrait ses données dans AppData/Local qui est un cache local à la machine qui est donc sensé être jetable et pouvoir être perdu avec la machine ! Qt fait la même erreur à cause de ce qui semble être une mauvaise interprétation de la documentation et une formulation hasardeuse (ça impacte donc les applis KDE sous Windows). J’ai aussi vue une application de bureau à distance (type TeamViewer mais une autre dont j’ai oublié le nom) qui calculait son identifiant d’accès à une machine sur la base de l’utilisateur, sauf qu’avec un AD l’utilisateur est le même quelque soit la machine, dont il n’était pas possible d’accéder à telle ou telle machine si le même identifiant avait ouvert deux machines 🤦‍♀️️. Bref, il y a tout un pan de l’informatique, y compris des produits de Microsoft, qui ne sont pas testés sur un réseau d’entreprise. Je n’ai jamais rien vu de bloquant, mais ça fait toujours bizarre de faire ce genre de surprise. Ça plus certaines applications métiers sous Windows qui ne sont pas testées sur des machines qui ne tournent pas en super utilisateur 🤦‍♀️️… Rien que ne pas être administrateur sans capacité d’escalade peut encore casser des choses en 2020+. Mais Windows ou Linux/Samba ça sera pareil de toute façon.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 7.

    Ta thèse c'est que Firefox n'est pas optimal en particulier quand tu as plus de 32Gio de RAM et que tu l'utilise sur des disques en réseau ?

    Non.

    Je n’ai pas dit qu’il fallait ces deux conditions.

    J’ai aussi dit que j’avais des problèmes même avec pas plus que 32Go de ram.

    Et il a été ajouté (et je le confirme moi-même, ça m’était juste sorti de l’esprit), que ce qui pourrait faire la ou une différence serait la quantité de swap réelle ou virtuelle (zram).

    Merci de ne pas fabriquer d’homme de paille.

    Je donne plusieurs exemples de contextes qui peuvent être indépendants, et je donne les suivants après que j’ai cité les précédents comme suffisants pour reproduire les problèmes, et je cite aussi divers problèmes qui peuvent se télescoper. Ça signifie que ces problèmes peuvent toucher des personnes différentes qui ne partagent pas forcément mes besoin ni les mêmes fournitures, c’est à dire que j’étends la couverture à une population plus large, et toi tu transformes ça en une espèce de « il faut cocher toute les cases en même temps » ce qui réduit drastiquement la couverture jusqu‘à en faire une exception. Je fait un ou inclusif, tu en fait un et.

    Je cite le cas du disque réseau (ce qui n’est pas mon usage, là tout de suite, mais j’ai aussi rencontré ce problème ou vu d’autres personnes rencontrer ce problème), mais je fais aussi un lien vers un article de quelqu’un qui parle de SSD, etc. Je parle du fait que le cache mémoire ne soit pas plafonné alors que le cache disque l’est (et est probablement plus petit que le cache mémoire réel) et j’ai ajouté le fait que Firefox écrit toutes les 15s. Il y a plein de scénarios où ça peut poser problème.

    Pour le premier problème, le plus évident c’est quand quelqu’un investit de la mémoire pour une application spécifique et que Firefox la mange à la place.

    Pour le second problème, ça peut concerner un disque réseau, disque mécanique, disque mécanique avec SMR (qui a une tête plus large que la piste, en gros, donc écrire une piste implique de réécrire plusieurs pistes, sachant que certains fabriquant dissimulent cette information), disque USB (c’est très pratique d’avoir un système portable avec son bureau dans la poche), etc. Et d’ailleurs ces écritures toutes les 15s peuvent aussi déclencher l’invalidation du cache disque au détriment d’autres applications qui pourraient être jugées plus productives, donc les deux problèmes peuvent se télescoper.

    Si je prend le premier exemple que je vois pour des config orientées jeux vidéo (donc relativement performante) : https://www.canardpc.com/les-configs-de-canard/

    Dois-je rappeler que le dimensionnement de la mémoire est aujourd’hui contrainte par le prix ? et le fait qu’il est plus facile de faire un compromis sur la mémoire que sur la carte graphique et que cette dernière souffre également d’une envolée des prix ?

    16Go aujourd’hui c’est le standard pour le matériel reconditionné (exemple), et ce depuis deux ou trois ans déjà. Beaucoup d’ordinateurs de joueurs n’ont pas plus parce que c’est la dèche. Ça fait 7 ou 8 ans que la mémoire stagne à 16Go ! Exemple: Best Gaming PC Build Under $1,500 [November 2015] : 16Go de ram, et c’était déjà de la DDR4.

    Et en fait il y a 10 ans avoir 16Go de ram c’était déjà super accessible, exemple High End Gaming Performance Under 1,000 [December 2012], avec 40$ les 8Go. Donc on était encore loin en dessous de 1500$ pour un PC “high end gaming” 16Go il y a 10 ans. 16Go ça coûtait 80€ les 2 barrettes. 32Go ça coûtait 160€ les 4 barrettes (les cartes mères avaient déjà 4 slots, pas de coût caché). Sur le lien que tu donnes, 16Go coûte aujourd’hui 95€, donc 190€ les 32Go. Sachant qu’entre temps l’inflation s’est envolée et que les ressources des ménages ont énormément baissées.

    Alors oui, tailler un Firefox qui marche bien quand il y a 16Go est normal vu que c’est ce que c’est ce qu’il y a sur le marché et ce depuis presque 10 ans. Mais ça ne justifie pas de ne pas mettre de limite haute par exemple.

    Tu utilise une fonctionnalité qui passe sous les radar

    Je donne ces exemples précis car le constat est aisé, je veux bien admettre que ces exemples sont spécifiques, mais je les ai choisis car évidents, et ils sont assez hors-norme pour que justement le constat soit évident et ne relève pas de la marge d’erreur. Mais oui toutes les applications qui font des lectures font appel au cache disque et sont donc concernées par l’invalidation du cache à cause d’une application qui s’étale, toutes les applications qui écrivent sont concernées par des écritures toute les 15s qui randomisent les accès et peuvent fragmenter le système de fichier.

    Ce n’est pas parce que quelqu’un ne se soucie pas de savoir ce qui est en cache ou pas qu’il n’est pas ralenti dans le montage de sa vidéo de vacance parce que Firefox se met à l’aise. Ne pas savoir être affecté n’est pas pareil que ne pas être affecté.

    Ça fait 5~6 ans que je me rend compte que sur ma machine avec 32Go Firefox marchait moins bien que sur ma machine avec 16Go et que chez des proches avec 8 ou 16Go. Jusque là ça je m’en satisfaisait en me disant « je verrai plus tard » et en râlant intérieurement. Et puis quand j’ai vu qu’avec 200Go de mémoire Firefox peut en manger 100… Là je me suis décidé à chercher.

    Je vais donner un autre exemple. Débuguer un pilote Mesa comme radeonsi ou clover peut requérir de recompiler Mesa depuis la branche main, mais ces pilotes sont intimement liés à LLVM, donc cela peut requérir de recompiler aussi LLVM depuis la branche main. Compiler LLVM en mode Debug ça peut prendre entre 6 et 8Go de mémoire par job. Sur une machine avec 16/32 Cœurs, ça veut dire qu’un meson compile -j$(nproc) va bouffer entre 192 et 256Go de ram, en fait un peu moins car tous les jobs ne vont pas faire 8Go et il y a une espèce de traîne, mais tu vois l’idée. J’ai écrit un script pour recompiler LLVM et Mesa et au moment de recompiler LLVM, le script récupère la quantité de mémoire disponible, divise par 8 et passe ce nombre à meson comme nombre de jobs de compilation parallèle à lancer.

    Débuguer un pilote va donc doubler ou tripler le nombre d’heures à passer en fonction de ce que décide Firefox, parce que « je suis bien content de ne pas me payer des barrettes de RAM pour le plaisir de vérifier qu'elles ne sont pas utilisées » ?.

    Là encore je prends un cas extrême (mais clairement identifiable), OK, mais en fait le problème que je pointe se présente dès lors que l’application principale de l’ordinateur demande plus de mémoire que Firefox, ou traite des gros fichiers, et qu’on a éventuellement investi de la mémoire pour cette application principale et non pas pour Firefox. Un joueur, un monteur de vidéo, quelqu’un qui compile de gros programmes (compilateur, noyau, suite office…) et tout plein d’usages qui peuvent réclamer de la mémoire peuvent être affectés par ce problème, même si c’est inconscient.

    Et puis ça amène des choses étonnantes ! Si quelqu’un se dit « je n’ai pas beaucoup besoin de swap sur mon ordi fixe car je n’hibernerai pas mais je vais mettre beaucoup de swap sur mon ordi portable pour pouvoir hiberner », il va penser que son ordi portable a des problèmes ou qu’il est plus lent pour une raison qui lui échappe. Et puis s’il applique la vieille règle de « la taille du swap est le double de la ram » pour se permettre d’hiberner même s’il swappe déjà parce qu’il a des gros programmes, passer de 16 à 32Go risque en fait de conduire Firefox à penser qu’il passe de 48Go à 96Go, et donc qu’il y a 48Go disponible en plus alors qu’il n’y a que 16Go disponible en plus en ram ! Et ce au détriment de toutes les autres applications !

    Personnellement quand quelqu’un me demande en quoi c’est mieux d’avoir plus de ram, je réponds « le cache disque », je ne dis pas aux gens de faire l’astuce du dd pour précharger les fichiers, non, non, je dis simplement que tout ce qui est écrit et lu ne sera plus jamais relu depuis le disque dur si la mémoire est assez grande pour ne pas devoir « oublier » le contenu du fichier. C’est à dire que pour quelqu’un qui n’a que des programmes qui prennent pas plus que 8 Go, s’il peut se payer 32Go c’est tout de même mieux que 16Go. Toute mémoire en rab est du cache en rab. Je donne souvent l’exemple du Jeu de pousse-pousse, la quantité de mémoire est parfaitement adaptée à la quantité de données traitées, mais le traitement est fastidieux et long, et tout case vide supplémentaire rendrait plus facile le traitement. Je donne aussi l’exemple d’un bureau où l’on aurait la place de mettre deux livres côte à côte et un autre bureau plus petit où l’on devrait les mettre l’un sur l’autre, et qu’on veut en faire une étude comparée (sachant qu’en plus en ram il n’y a même pas de notion de distance). Ces métaphores fonctionnent très bien.

    La mémoire en rab, c’est du cache disque avec l’accès le plus rapide du monde ! Alors c’est vrai aussi pour le web, sauf que le web a une sacré tendance à t’afficher mille choses dont tu n’as pas besoin. Si quelqu’un ne va que sur des sites qui ne lui affichent que ce que dont il a besoin, le problème que je décris ne le concerne pas, c’est vrai, mais par contre ça c’est désormais un cas d’usage vraiment très spécifique et anecdotique.

    Nos sites web modernes sont blindés de changement dynamiques, de défilement infini, et ça ne s’arrête jamais (et je ne parle pas des pubs, qui sont bloquées chez moi). Le web ne dors jamais et les sites web se rafraîchissent tous seul, d’où le besoin de plafonner la mémoire immédiate affectée à retenir la soupe qui sort de ce robinet grand ouvert.

    Jamais je n’aurai imaginé qu’un changement aussi simple que changer ce genre de clé aurait eu un tel impact sur l’utilisabilité des machines !

    Ah oui aussi, il peut être intéressant d’aller sur about:memory et de cliquer sur les 3 boutons GC, CC et Minimize memory usage, notamment après avoir plafonné la valeur de browser.cache.memory.capacity dans about:config. Ça peut récupérer une poignée de Go pour celui qui voudrait faire de la place pour une autre application.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 6. Dernière modification le 18 juin 2022 à 15:40.

    Et pour Firefox que tu moque beaucoup. Pour un utilisateur comme toi qui utilise une partie réputé non assignée de la mémoire, ils ont des centaines de milliers d'utilisateurs qui se plaignent de sa lenteur. Ils font tout pour augmenter leur performance.

    À la base de mes investigations, il y a le constat que Firefox marche moins bien quand on a beaucoup de mémoire.

    C’est à dire qu’il y a une espèce de zone intermédiaire où Firefox marche mieux. Pas assez de mémoire ? Trop lent. Plein de mémoire ? Il s’étale, et ça devient gênant. J’ai vu des proches avoir des centaines d’onglets sur des machines à 8 ou 16Go et leur Firefox marchant mieux que moi sur une machine à 32Go.

    Le coup du swap qui semble visiblement déterminer la capacité de Firefox à s’étendre est assez étonnant, ce n’est pas de la performance que de swaper ou d’invalider le cache disque qui pourrait bénéficier aux autres applications

    J’ai vu des gens dire « j’ai assez de mémoire pour ne pas avoir de swap », au début quand je lisais cela je me disais que c’était bizarre car même sur des machines avec 30 ou 60Go le swap peut se retrouver utilisé même avec un swappiness qui dit de ne l’utiliser qu’en dernier recours, sauf que peut être que ça marche mieux sans swap en fait… Peut-être que certaines applications prennent plus de place (et donc provoquent plus de situation de swapper) s’il y a un swap.

    Parce que zram expose du swap virtuel qui n’existe pas (vue décompressée de page mémoire compressée), il est possible qu’activer zram encourage certains programmes à occuper plus de mémoire et donc à réduir la mémoire réellement disponible en accès immédiat.

    En échouant à trouver la doc linux du cache pour savoir si c'était ou non de l'ordre du hack. Je suis tombé sur ça qui pourrait être intéressant.
    https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/cache.html

    Il y a aussi bcache qui permet d’intercaler des SSDs entre des disques durs et la mémoire vive, et si le disque dur a été préparé pour cela, il est possible d’ajouter/retirer les SSDs à chaud.

    Personne n’est contre la performance, mais il y a des pratiques qui peuvent-être contre-productives. Il y a une dizaine d’année il y avait une mode où plein de programmes sous Windows configuraient un démarrage à l’ouverture de session : tout et n’importe quoi se lançait à l’ouverture de session et se réduisait sous forme d’icône dans la tray bar. C’était sensé « accélérer l’ouverture des fichiers » et autre choses de ce genre, puisque le programme était déjà lancé. Sauf que rapidement la mémoire se trouvait occupée par des programmes qui ne servaient pas, et qui restaient ouvert avant et après qu’on ai édité un document, et puis l’ouverture de session était très lente. Une des premières opération pour rendre les performances d’origine aux machines constituait en la désactivation de tous ces programmes (coucou msconfig). Ce qui se passe avec Firefox (et il n’est probablement pas le seul) est du même ordre : le programme agit comme s’il était tout seul et que toute opération pour améliorer les performances est acceptable car l’idée de partager la machine semble étrangère. Par défaut le cache disque est configuré à 1Go, qu’est ce qui empêche de configurer par défaut le cache mémoire à 1 ou 2Go ? Ou un pourcentage ? Il est possible que la valeur du cache disque à 1Go soit un reliquat du passé puisqu’aujourd’hui le cache mémoire est très probablement plus large (puisque non limité), donc un pourcentage pourrait être une bonne idée.

    Au passage, parmi les choses qui peuvent améliorer les performances (et prolonger la durée de vie) d’un ordinateur faisant tourner Firefox, il y a la clé browser.sessionstore.interval. Cette clé configure à quel rythme Firefox enregistre sur disque son état actuel, ce qui permet de récupérer ses onglets si l’ordinateur s’éteint de manière imprévue ou que Firefox crash dans cet intervalle. La valeur par défaut est de 15 secondes (15000). C’est très très court, sur certains systèmes et avec certains usages Firefox ne s’arrête jamais d’écrire… avec le risque que l’écriture de l’état courant dure plus de 15s. Et ça peut évidemment ralentir les IO des autres programmes en se mettant en travers (surtout sur les stockages dont les accès aléatoires sont lent !). Actuellement cette valeur est assignée à 2 minutes (120000) de mon côté, ça veut dire que si j’ai un crash, au pire je perds ce que j’ai fait dans les 2 dernières minutes. C’est un compromis acceptable à mes yeux.

    Là, 15s est la valeur par défaut car considéré comme « safety critical for many users », voir ce commentaire d’un développeur de Firefox. La conversation date de 2016 et je ne sais pas trop où ça en est mais à l’époque il était dit :

    we are aware of the problem, but fixing it for real requires completely re-architecturing Session Restore. That’s something we haven’t done yet, as Session Restore is rather safety-critical for many users, so this would need to be done very carefully, and with plenty of manpower.

    Le ticket est toujours ouvert. Le dernier commentaire d’il y a trois ans dit:

    A significant amount of work happened since this bug was first filed that has reduced the severity of the problem.
    There's still more that can be done, that's why this bug is marked up as a metabug and there are still open related bugs.

    Je ne sais donc pas trop où ça en est, mais j’ai moi aussi remarqué la quantité énorme d’écritures que rapportait mon système. J’ai aussi remarqué le réveil fréquent de certains disques. Je parlais d’un script qui réduit la consommation ou endort certains composants sans tout suspendre, quand une machine a un bcache avec ce genre de script je peux aussi mettre le bcache en writeback et suspendre les disques durs, sauf que si Firefox n’est pas suspendu, les disques durs sont très vite réveillés, évidemment, parce qu’à un moment le cache en écriture atteint un seuil qui déclenche l’écriture sous-jacente ou bien diverses lectures sont faites par le même processus qui va écrire, et plus ça fait d’IO et plus il y a de chance que ça fasse une opération hors-cache. Bon, ce genre de chose est sensée ne pas se produire quand Firefox détecte qu’il est en train d’« idle », mais je ne suis pas certain que cette détection fonctionne toujours.

    Et comme certains le font remarquer sur le ticket, ce genre de comportement peut être gênant sur des disques réseau… Ce qui peut sembler performant, fiable, etc. à première vue peut ne l’être que dans des cas déterminés. Ce qui peut sembler évident diffère selon qu’on suppose qu’un programme soit seul ou non, par exemple.

    ce commentaire est sous licence cc by 4 et précédentes

  • [^] # Re: Pas de swap … pas de problème

    Posté par  (site web personnel, Mastodon) . En réponse au journal Zswap, ZRam, EarlyOOM... organiser la gestion d'une pénurie de mémoire vive. Évalué à 7.

    je suis bien content de ne pas me payer des barrettes de RAM pour le plaisir de vérifier qu'elles ne sont pas utilisées.

    Souvent quand je travaille sur beaucoup de données, je fais quelque chose comme ça (dans le dossier contenant les données) :

    # astuce: remplacer 4 par un nombre précisément adapté au stockage,
    # ici 4 est donné comme exemple pour un RAID10 qui peut lire 4 fichiers en parallèle à la vitesse nominale de 4 disques durs.
    find . -type f -print0 | parallel --will-cite --bar -0 -I{} -P4 dd if={} of=/dev/null bs=10M status=none
    

    Cette commande va tout simplement lire tous les fichiers entièrement et donc les charger en cache disque.

    Une fois ceci fait, toute lecture sera extrêmement rapide, un programme peut lire un fichier de 100Go à plusieurs Go/s. Il est aussi possible de faire ce genre de dd pour charger le fichier suivant pendant que le précédent est en train d’être traité, etc.

    Avec un Firefox qui s’étale en prenant toute la place qu’il croit pouvoir prendre, les gros fichiers en cache mémoire se font virer du cache et sont alors lus depuis le stockage qui peut être plusieurs fois plus lent (disque mécanique par exemple !). Quand je travaille sur des images, vidéo ou du son je produit souvent des fichiers intermédiaires en sans-perte et peu compressé, mais le temps gagné à utiliser un codec qui compresse peu peut être perdu plusieurs fois si à chaque lecture du fichier produit la bande passante de lecture est celle d’un disque dur parce que Firefox en arrière plan a quelques onglets sur un réseau social à scrolling infini…

    Mettre des fichiers volontairement en cache mémoire est une stratégie très efficace. J’ai d’ailleurs parfois fait ça sur des serveurs par exemple : précharger les profils utilisateurs pour accélérer l’ouverture de session, j’ai parfois augmenté la ram de certains serveurs pour cette seule raison : pouvoir conserver tous les profils utilisateurs en ram.

    Alors si un développeur d’une appli ou service utilisé sur le même serveur a décidé qu’il allait sonder la mémoire pour décider de l’occuper pour son bébé sans m’en parler, je suis pas vraiment d’accord. Je n’achète pas de la ram pour lui.

    Pour continuer sur l’exemple initial, je n’achète pas de la ram pour que Firefox puisse conserver tout ce que peut afficher le scrolling infini de Facebook.

    Linux propose des outils très pratique pour rendre certaines opérations très rapide (copie-sur-écriture avec btrfs, cache disque…):

    $ du -shc */*blabla* | tail -n 1
    149G    total
    
    $ time cp -a --reflink */*blabla* process/
    real    0m5,546s
    user    0m0,000s
    sys 0m5,541s
    
    $ ls process | wc -l
    27
    
    $ echo 3 | sudo dd of=/proc/sys/vm/drop_caches status=none
    
    $ time find process -type f -print0 | parallel --will-cite --bar -0 -I{} -P4 dd if={} of=/dev/null bs=10M status=none
    100% 27:0=0s process/blabla
    
    real    5m28,149s
    user    0m0,902s
    sys 1m43,974s
    
    $ time find process -type f -print0 | parallel --will-cite --bar -0 -I{} -P4 dd if={} of=/dev/null bs=10M status=none
    100% 27:0=0s process/blabla
    
    real    0m5,193s
    user    0m0,201s
    sys 0m15,826s
    

    Interprétation : dans cet exemple j’ai environ 150Go de données à traiter en 27 fichiers (dans cet exemple réel, les fichiers font entre 1 et 22Go chacun). Grâce à btrfs je peux les copier dans un dossier de travail en 5s (copie sur écriture). Si le cache disque est vide (cas suboptimal), lire ces données prendra 5 minutes et demi (sachant que c’est possiblement séquentiel et donc déjà optimal), mettre ces données en cache disque prendra donc 5 minutes et demi. Mais, une fois ces données dans le cache disque, les lire ne prendra que 5s. Lire 150Go en 5s c’est une vitesse de lecture de 30Go par seconde. Il peut être donc très intéressant de précharger des fichiers en cache disque si une application doit les lire plusieurs fois et/ou de manière plus ou moins aléatoire, et ce serait vraiment dommage qu’un onglet de Firefox chargeant le prochain lolcat à la mode réclame d’éjecter du cache un gros fichier de 20Go, en plus mon petit doigt me dit que Linux pourrait précisément choisir d’éjecter le plus gros… 🤦‍♀️️

    Parmi les astuces dans mon couteau suisse, j’ai aussi ceci :

    $ killall -STOP firefox
    → faire des opérations gourmandes en CPU, ram et IO.
    $ killall -CONT firefox
    

    La première commande va suspendre tous les processus Firefox (comme si j’avais fait Ctrl+Z sur chacun d’eux), à lancer avant de faire des opérations gourmandes en calcul, mémoire et entrées/sorties quand Firefox est en arrière plan. La seconde commande va les réveiller (comme si j’avais fait fg sur chacun d’eux), à faire quand on a besoin à nouveau de visiter le web. En plus il est possible que puisque les processus dorment, le noyau décide de les déplacer vers le swap pendant que l’on précharge en cache disque les gros fichiers ! C’est tout bénéf !

    Accessoirement j’ai écrit un script que j’utilise pour suspendre Firefox quand je verrouille ma session et le réveiller quand je déverrouille ma session, comme ça Firefox cesse de faire du réseau, de faire chauffer le CPU et de gratter le disque dur pendant que j’ai le dos tourné, tout en conservant certains calculs en tâche de fond. C’est une forme de « mise en veille partielle ».

    Quand je dois laisser l’ordinateur traiter des données mais que ce n’est pas gourmand, le script suspend certains programmes, met le processeur et les cartes graphiques en économie d’énergie, désactive des cœurs… mais tourne toujours pour traiter ci ou ça ou servir tel ou tel service.

    Je rêve d’une application façon « gestionnaire de tâche » qui me permettrait en deux clic de suspendre telle ou telle application et de la déplacer dans le swap, pour laisser toute la place à autre chose. Si quelqu’un connaît un moyen de dire au noyau de déplacer une application donnée dans le swap, je suis preneur (sachant que si elle est suspendue, on sait déjà qu’elle n’en sortira pas toute seule).

    Le cache disque est un super outil quand on commence à l’utiliser intentionnellement, d’ailleurs j’ai remarqué que certaines applications comme Kdenlive font des xrun dans les premières secondes de lecture quand on déplace le curseur de lecture, et je me demande si on pourrait réduire simplement ces xrun si Kdenlive commençait à précharger le morceau de fichier qui va suivre (à la manière d’un basique dd) dès le positionnement du curseur. Entre le moment où l’utilisateur positionne le curseur et le moment où l’utilisateur lance la lecture il peut se passer 1/4 de seconde étant donné les réflexes humains, et ça peut être suffisant pour précharger assez pour éviter les micro-coupures audio, qui sait ?

    Tu peux peut être passer par des cgroups pour limiter la mémoire.
    https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory

    Merci, je vais regarder ça ! =)

    ce commentaire est sous licence cc by 4 et précédentes