Je me rappelle, il y a quelques années, je recevais environ 600 spams par jour. Et puis soudain…plus rien pendant 1 jour, 2 jours, 3 jours… Là, je me dis « c’est pas normal ! je devrais bien recevoir quelques messages tout de même ! ».
Une investigation rapide dans les logs du serveur de messagerie montrent que l’antivirus (clamd) consommant de plus en plus de mémoire a déclenché la colère de l’OOM-Killer et a provoqué l’arrêt de « postfix » !
La même mésaventure est arrivée à un de mes clients, il y a quelques jours : « Dites : vous pouvez jeter un coup d’oeil à nos batchs (crontabs) car ils ne sont pas déclenchés ?« . La syntaxe semble pourtant bonne, les jobs, lancés manuellement, fonctionnent. Oui, mais voilà, le démon crond n’existe pas, pourtant il est bien lancé au démarrage… Que s’est-il passé ? La faute à l’OOM-Killer encore une fois !
Petit rappel de la gestion de la mémoire par le noyau Linux…
Imaginez la situation suivante : vous êtes connecté en tant que « root » sur un serveur Linux et vous devez modifier le fichier /etc/hosts. Pourtant, vous n’y arrivez pas : le système vous insulte copieusement en vous signalant que la modification est impossible ou a échoué.
Pouvez-vous imaginer les causes de ce problème ? Nous en avons listé 5… à vous de faire mieux…
A l’origine fût le bit pourvu d’une simple valeur 0 ou 1, puis ces bits furent agrégés, généralement par 8 pour former des octets (le « byte » anglophone).
Avec un octet on ne fait pas grand-chose, on ne stocke presque rien. Rapidement, les fabricants de matériel ont fourni des mémoires, des disquettes, des disques pouvant contenir des milliers, des millions d’octets. Naturellement, ils ont réutilisé les multiples déjà en vigueur, à savoir le kilo, le méga, etc…
On a vu apparaitre alors le Ko (kilo-octets) et le Mo (méga-octets)…. seulement, les informaticiens aimant les puissances de deux, le kilo-octets (Ko) des informaticiens ne faisait pas 1000 octets mais 1024 octets, car c’est la puissance de deux la plus proche de 1000 (1024 = 2 puissance 10). Dans le même esprit, le méga-octets faisait 2 ** 20 octets, soit 1.048.576 octets et non pas un million d’octets.
Les informaticiens ont donc réutilisé le kilo pour indiquer un multiple de 1024 alors que d’habitude un kilo signifie 1000 quelque chose (kilomètre, kilogramme…).
Pourquoi pas ? On s’est bien adapté…
Mais en 1998 l’International Electrotechnical Commission (IEC) a décidé qu’il fallait clarifier la situation. Ainsi de nouvelles unités ont été créées : en savoir plus