ne pas se faire envoûter par les sirènes de la programmation facile et les fourre-tout à fonctionnalités (aka bloatwares)
Et je pense que j'ai à peu près mon compte :p
Pour ajouter un peu de contenu, je pourrais par exemple parler de ma vieille machine, parfaitement fonctionnelle, "designed for windows millenium", que j'ai acquise avec 64Mo de RAM (j'ai réussi à trouver de quoi monter à presque 200Mo \o/).
Cette machine flambante neuve dispose même d'un lecteur de bande SCSI, la pointe de la modernité, je vous dit!
Elle marche parfaitement avec une Debian 9, mais je ne pourrais probablement pas la booter avec une debian 11.
Je soupçonne ce fait parce que la dernière fois que j'ai voulu booter une VM qui ait moins de 250Mo de ram, l'initrd faisait partir le système en couille: pas assez de RAM.
Après augmentation de quelques dizaines de megs, plus de problème, et la consommation mémoire mesurée au login était inférieure à 50Mo.
Les gros consommateurs individuels? Le noyau et, surtout, systemd-udevd (le seul composant systemd installé).
Autre chose, si je laissait faire les MàJ, elle finirait avec systemd, plutôt que runit.
Hors, systemd, la dernière fois que j'ai mesuré, avait (de mémoire, presque un an) une empreinte RSS de plus de 30Mio.
À comparer avec "runsvdir + ( runsv + svlogd ) * N + runit" qui ont, liés à glibc, environ 750Kio de RSS (en moyenne). Liés avec musl, ou liés statiquement (ou en utilisant leurs équivalents dans busybox-static), on tombe à 4Kio de RSS par process.
En gros, systemd a, il est vrai, très peu de coût RSS par daemon géré (non mesurable, en fait), mais un coût initial énorme, alors que runit à un faible coût initial, et un gros coût par daemon (entre 8Kio et 1.5Mio, selon qu'on utilise glibc en dynamique ou non). La conclusion, c'est qu'il faut un nombre de daemon élevé (entre 20 et 7500, selon que glibc ou pas) pour que systemd soit à égalité avec runit de ce point de vue.
Sur une machine qui a moins de 200Mio, ça compte. Bon, en pratique, cette machine permets toujours de communiquer via IRC, mails, de faire de la bureautique... les seuls trucs qu'elle ne peut plus faire, c'est accéder au «web moderne» et lancer des jeux (encore que, de mémoire, j'arrivais a y faire tourner wesnoth), donc ça reste une machine d'appoint, au cas ou ma machine de tous les jours soit détruite (ou celle de quelqu'un d'autre, c'est déjà arrivé que je la prête, il avait fallu que j'installe LXDE, c'était amusant aussi ça, tiens).
On peut aussi parler, évidemment, d'ÉtronJS, qui embarque chromium dans chaque «application». Je ne ferai l'insulte a personne de développer ce point sur un point de vue écologique.
En fait, je pense que, bon, pourquoi pas... pour faire un PoC, un prototype, ça peut le faire, mais pour de la prod (en plus ça plante si facilement... je ne compte plus les SIGILL dans mes dmesg, quasi systématiquement liés à ce truc)?
J'ai pris systemd comme example, un peu pour le troll, mais aussi parce que j'ai effectivement mesuré, mais ça s'applique évidemment (et beaucoup mieux) à de nombreux autres logiciels: transmission consomme ~60Mio de RSS, contre le double pour qbittorrent, pour prendre un exemple récemment vu. Kiwix-desktop est un monstre (près de 180Mo), qui ne fait pourtant quasiment que la même chose qu'un serveur HTTP...
[^] # Re: Empreinte environnementale
Posté par freem . En réponse au journal Forlater.email, un service pour lire plus tard. Évalué à 4. Dernière modification le 14 octobre 2021 à 11:41.
Ajoutes:
Et je pense que j'ai à peu près mon compte :p
Pour ajouter un peu de contenu, je pourrais par exemple parler de ma vieille machine, parfaitement fonctionnelle, "designed for windows millenium", que j'ai acquise avec 64Mo de RAM (j'ai réussi à trouver de quoi monter à presque 200Mo \o/).
Cette machine flambante neuve dispose même d'un lecteur de bande SCSI, la pointe de la modernité, je vous dit!
Elle marche parfaitement avec une Debian 9, mais je ne pourrais probablement pas la booter avec une debian 11.
Je soupçonne ce fait parce que la dernière fois que j'ai voulu booter une VM qui ait moins de 250Mo de ram, l'initrd faisait partir le système en couille: pas assez de RAM.
Après augmentation de quelques dizaines de megs, plus de problème, et la consommation mémoire mesurée au login était inférieure à 50Mo.
Les gros consommateurs individuels? Le noyau et, surtout, systemd-udevd (le seul composant systemd installé).
Autre chose, si je laissait faire les MàJ, elle finirait avec systemd, plutôt que runit.
Hors, systemd, la dernière fois que j'ai mesuré, avait (de mémoire, presque un an) une empreinte RSS de plus de 30Mio.
À comparer avec "runsvdir + ( runsv + svlogd ) * N + runit" qui ont, liés à glibc, environ 750Kio de RSS (en moyenne). Liés avec musl, ou liés statiquement (ou en utilisant leurs équivalents dans busybox-static), on tombe à 4Kio de RSS par process.
En gros, systemd a, il est vrai, très peu de coût RSS par daemon géré (non mesurable, en fait), mais un coût initial énorme, alors que runit à un faible coût initial, et un gros coût par daemon (entre 8Kio et 1.5Mio, selon qu'on utilise glibc en dynamique ou non). La conclusion, c'est qu'il faut un nombre de daemon élevé (entre 20 et 7500, selon que glibc ou pas) pour que systemd soit à égalité avec runit de ce point de vue.
Sur une machine qui a moins de 200Mio, ça compte. Bon, en pratique, cette machine permets toujours de communiquer via IRC, mails, de faire de la bureautique... les seuls trucs qu'elle ne peut plus faire, c'est accéder au «web moderne» et lancer des jeux (encore que, de mémoire, j'arrivais a y faire tourner wesnoth), donc ça reste une machine d'appoint, au cas ou ma machine de tous les jours soit détruite (ou celle de quelqu'un d'autre, c'est déjà arrivé que je la prête, il avait fallu que j'installe LXDE, c'était amusant aussi ça, tiens).
On peut aussi parler, évidemment, d'ÉtronJS, qui embarque chromium dans chaque «application». Je ne ferai l'insulte a personne de développer ce point sur un point de vue écologique.
En fait, je pense que, bon, pourquoi pas... pour faire un PoC, un prototype, ça peut le faire, mais pour de la prod (en plus ça plante si facilement... je ne compte plus les SIGILL dans mes dmesg, quasi systématiquement liés à ce truc)?
J'ai pris systemd comme example, un peu pour le troll, mais aussi parce que j'ai effectivement mesuré, mais ça s'applique évidemment (et beaucoup mieux) à de nombreux autres logiciels: transmission consomme ~60Mio de RSS, contre le double pour qbittorrent, pour prendre un exemple récemment vu. Kiwix-desktop est un monstre (près de 180Mo), qui ne fait pourtant quasiment que la même chose qu'un serveur HTTP...