100 votes

L'ordinateur se bloque lorsque la RAM est presque pleine, peut-être un problème de cache sur le disque.

Le problème, je pense, est un peu similaire à ce fil.

Peu importe que le swap soit activé ou désactivé, lorsque la quantité de RAM réellement utilisée commence à être proche du maximum et qu'il n'y a presque plus d'espace pour le cache du disque, le système ne répond plus du tout.

Le disque tourne sauvagement, et parfois après de longues attentes de 10 à 30 minutes, il se débloque, et parfois non (ou je perds patience). Parfois, si j'agis rapidement, j'arrive à ouvrir lentement la console et à tuer certaines des applications qui consomment de la mémoire vive, comme le navigateur, et le système se débloque presque instantanément.

A cause de ce problème, je ne vois presque jamais rien dans le swap, seulement parfois il y a quelques MB là, et puis peu après ce problème apparaît. Je pense que ce problème est lié à un cache disque trop gourmand ou à une gestion de la mémoire trop indulgente, de sorte que lorsque la mémoire est nécessaire, elle n'est pas libérée assez rapidement et affame le système.

Le problème peut être atteint très rapidement si l'on travaille avec de gros fichiers (500MB+) qui sont chargés dans le cache du disque et apparemment après le système est incapable de les décharger assez rapidement.

Toute aide ou idée sera grandement appréciée.

Pour l'instant, je dois vivre dans une peur constante, lorsque je fais quelque chose, l'ordinateur peut se figer et je dois généralement le redémarrer, s'il est vraiment à court de ram, j'aimerais beaucoup plus qu'il tue certaines applications de l'espace utilisateur, comme le navigateur (de préférence si je pouvais marquer lesquelles tuer en premier).

Mais le mystère est de savoir pourquoi le swap ne me sauve pas dans cette situation.

MISE À JOUR : Il ne s'est pas bloqué pendant un certain temps, mais maintenant j'ai à nouveau plusieurs occurrences. Je garde maintenant le moniteur de ram sur mon écran à tout moment et quand le blocage s'est produit, il montrait encore ~30% de libre (utilisé par le cache disque probablement). Symptômes supplémentaires : Si au moment où je regarde une vidéo (VLC player) le son s'arrête en premier, après quelques secondes l'image s'arrête. Pendant que le son s'arrête, j'ai encore un certain contrôle sur le PC, mais lorsque l'image s'arrête, je ne peux même plus bouger la souris, alors je l'ai redémarré après quelques minutes d'attente. En fait, cela ne s'est pas produit lorsque j'ai commencé à regarder la vidéo, mais après un certain temps (20 minutes) et je n'ai rien fait d'autre à ce moment-là, même si le navigateur et oowrite étaient ouverts sur le deuxième écran pendant tout ce temps. En gros, quelque chose décide de se produire à un moment donné et bloque le système.

Comme demandé dans les commentaires, j'ai exécuté dmesg juste après l'accrochage. Je n'ai rien remarqué de bizarre, mais je ne savais pas quoi chercher, alors voilà : https://docs.google.com/document/d/1iQih0Ee2DwsGd3VuQZu0bPbg0JGjSOCRZhu0B05CMYs/edit?hl=en_US&authkey=CPzF7bcC

2voto

Beto Aveiga Points 121

Je me suis longtemps battu avec ce problème, mais il semble maintenant être résolu sur mon ordinateur portable.

Si aucune des autres réponses ne fonctionne pour vous (j'ai essayé la plupart d'entre elles), jouez avec min_free_kbytes pour avoir plus d'espace dans la RAM lorsque votre ordinateur commence à échanger des données (juste avant d'atteindre la valeur minimale de votre RAM libre).

J'ai 16 Go de RAM, mais plus tôt que tard, la mémoire devient pleine et ne répond plus pendant 10 à 30 minutes, jusqu'à ce que certaines choses soient échangées.

Au moins pour moi, le réglage min_free_kbytes supérieure à la valeur recommandée accélère considérablement le processus de permutation.

Pour 16 Go de RAM, essayez ceci :

vm.min_free_kbytes=500000

Pour définir cette valeur, voir d'autres réponses, ou simplement le googler :)

1voto

Hitechcomputergeek Points 1053

Je fais fonctionner un de mes ordinateurs portables à partir d'une carte SD Ubuntu vivante en permanence, avec une petite partition de stockage ext4 et un fichier swap sur le disque dur. Lorsque la quasi-totalité de la RAM est utilisée et que la valeur d'échange est trop faible (parfois, je préfère ne pas utiliser le disque dur si possible, car il est bruyant), les performances de Linux ont tendance à s'effondrer pour moi, à tel point que le simple fait de se rendre sur TTY1 pour tuer Firefox prend 15 minutes.

Raising /proc/sys/vm/vfs_cache_pressure de la valeur par défaut de 100 à une valeur de 6000 semble aider à éviter cela. Cependant, la documentation du noyau met en garde contre cette pratique, en indiquant que

Increasing vfs_cache_pressure significantly beyond 100 may have negative
performance impact. Reclaim code needs to take various locks to find freeable
directory and inode objects. With vfs_cache_pressure=1000, it will look for
ten times more freeable objects than there are.

Je ne suis pas tout à fait sûr des effets secondaires de cette pratique, je serais donc prudent.

0voto

Au lieu de régler les paramètres du noyau vous-même, essayez linux-zen ou linux-ck qui sont spécialement conçus (corrigés et réglés) pour les ordinateurs de bureau et les ordinateurs portables. Linux par défaut est plus orienté vers le débit et les serveurs sans interface graphique.

zen vous donnera moins de temps mais une meilleure réactivité. Dans mon expérience, le réglage des paramètres du noyau par défaut donne moins d'autonomie que linux-zen (ou liquorix) et linux-ck.

Pour ubuntu, je pense que vous devez compiler et patcher manuellement le noyau pour linux-ck avec le patchset ck de Con Kolivas.

Vous pouvez utiliser le noyau liquorix qui utilise les sources de Linux-zen. Jetez un coup d'oeil à https://liquorix.net/

voici comment l'installer

sudo add-apt-repository ppa:damentz/liquorix
sudo apt-get update
sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

si vous insistez pour utiliser le noyau par défaut, alors désactiver le swap pourrait être une meilleure option aussi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X