J'ai une machine Linux assez ancienne avec 2 Go de RAM, pas de swap, et cela fonctionne très bien, avec le système utilisant chaque morceau de mémoire inutilisé pour la mise en cache avec beaucoup d'effet.
Cependant, lorsque je suis sur le point de surcharger la mémoire (par exemple,> 1950 Mo alloués), cela ralentit en une exploration; Je soupçonne que c'est parce qu'il n'y a plus de tampons de disque. Je sais que le tueur OOM entrerait bientôt en vigueur, mais il n'y arrive généralement pas - il devient si lent que les charges tournent à 30-40, aucun processus ne progresse (donc n'alloue pas plus de mémoire), et Je dois le redémarrer.
Lorsque j'essaie de tuer un seul processus pour que la machine réponde, par exemple en allant sur la console (via Alt-F1, en me connectant et en effectuant simplement un "mauvais processus killall"), cela fonctionne généralement, sauf que je dois attendre ~ 10 minutes entre l'utilisateur / mot de passe et l'obtention d'une invite - tout en présence d'activité sur le disque.
Encore une fois, il n'y a pas d'échange, donc ce n'est pas l'échange - c'est juste une raclée car il n'y a plus de tampons.
J'aurais beaucoup plus de 100 Mo dédiés exclusivement aux tampons de disque, ce qui déclencherait le tueur OOM plus tôt (moins de mémoire pour les programmes, après tout) mais, d'autre part, laisserait la machine réactive à tout moment.
Y-a-t-il un moyen de faire ça? Je n'ai pas pu trouver une entrée / proc / kernel ou / sys / vm qui fait ce genre de chose.