Mise à jour 2024

13 ans plus tard, force est de constater que la tendance n’est pas allée vers une optimisation des ressources mais plutôt vers un gros brute force dégueulasse. On pousse un max de RAM et de cores dans les serveurs, et les applications (et développeurs de celles-ci) ne sont en aucun cas encouragés à utiliser les ressources de manière responsable.

Au travers de mes derniers emplois, j’ai malheureusement dû constater que les “jeunes” sont régulièrement incapables d’effectuer des tâches simples avec des ressources limitées (genre 1 core + 512 MB RAM), et blâment le matériel pour leur échec.

J’en viens à me demander dans quelle mesure il ne faudrait pas forcer les jeunes à apprendre (à l’école) à coder sur des Raspberry Pi 1 voire 2…

Post initial

Suite au post précédent, j’ai activé KSM sur une machine hébergeant deux petites VM.

Avant l’activation, la mémoire ressemblait à ça:

_____________total_______used_______free_____shared____buffers_____cached
Mem:______16471120____3936616___12534504__________0_____469648_____239828
-/+_buffers/cache:____3227140___13243980

Soit environ 3840MB utilisés.

Après quelques dizaines de secondes et un premier full_scan, on voyait déjà les résultats:

_____________total_______used_______free_____shared____buffers_____cached
Mem:______16471120____3362124___13108996__________0_____469648_____239828
-/+_buffers/cache:____2652648___13818472

Soit environ 3280MB utilisés. Donc une économie de 560MB, soit 14% !

Après quelques minutes et plusieurs full_scan, le process s’est stabilisé autour de ceci:

_____________total_______used_______free_____shared____buffers_____cached
Mem:______16471120____3256956___13214164__________0_____469660_____239848
-/+_buffers/cache:____2547448___13923672

Soit environ 3180MB utilisés. Une économie de 660MB soit 17%.

_____________total_______used_______free_____shared____buffers_____cached
Mem:______33018900___32088500_____930400__________0_____211676___23070984
-/+_buffers/cache:____8805840___24213060

Alors bien sûr, cette économie de mémoire a un inconvénient: un usage processeur plus élevé et donc une consommation électrique plus importante. D’après le brave top, ksmd utilise environ 8% d’un core de cette machine, qui n’en branle pas une.  

Prochaine étape, activer KSM sur un serveur un peu plus utilisé (10VM) et dont la mémoire ressemble ça:

_____________total_______used_______free_____shared____buffers_____cached
Mem:______33018900___32837972_____180928__________0_____211276___23094952
-/+_buffers/cache:____9531744___23487156

Edit: voilà, j’ai activé KSM sur cette machine, l’impact est nettement moins flagrant:

_____________total_______used_______free_____shared____buffers_____cached
Mem:______33018900___32088500_____930400__________0_____211676___23070984
-/+_buffers/cache:____8805840___24213060