Out of memory
Posté : dim. 22 mars 2026 12:05
Merci à un développeur et un administrateur système pour leur question :
"Nous avons des requêtes exécutées en parallèle qui échouent sur notre serveur Linux décisionnel hébergeant une base PostgreSQL, avec une impossibilité d'allouer de la mémoire pour un nouveau process. Pourtant, même s'il y a peu de mémoire libre, il y a beaucoup de mémoire disponible utilisée en cache. Comment y remédier ?"
Réponse :
Lors de l'exécution de requêtes lourdes, PostgreSQL fait en effet appel à des process supplémentaires mais, dans un autre contexte, ce sont des démarrages de process trop fréquents qui peuvent échouer si le programme est écrit en php sans connexion persistantes.
Il existe des solutions possibles dans chaque situation mais, sur un serveur PostgreSQL, la mémoire que Linux a pour objectif de laisser libre afin de pouvoir allouer rapidement peut être effectivement trop basse par défaut. Il est possible d'augmenter vm.min_free_kbytes (valeur en ko comme l'indique le nom du paramètre), à 64Mo sur les systèmes avec quelques Go de RAM mais 512Mo ne sont pas choquants sur un système à 32Go etc.
"Nous avons des requêtes exécutées en parallèle qui échouent sur notre serveur Linux décisionnel hébergeant une base PostgreSQL, avec une impossibilité d'allouer de la mémoire pour un nouveau process. Pourtant, même s'il y a peu de mémoire libre, il y a beaucoup de mémoire disponible utilisée en cache. Comment y remédier ?"
Réponse :
Lors de l'exécution de requêtes lourdes, PostgreSQL fait en effet appel à des process supplémentaires mais, dans un autre contexte, ce sont des démarrages de process trop fréquents qui peuvent échouer si le programme est écrit en php sans connexion persistantes.
Il existe des solutions possibles dans chaque situation mais, sur un serveur PostgreSQL, la mémoire que Linux a pour objectif de laisser libre afin de pouvoir allouer rapidement peut être effectivement trop basse par défaut. Il est possible d'augmenter vm.min_free_kbytes (valeur en ko comme l'indique le nom du paramètre), à 64Mo sur les systèmes avec quelques Go de RAM mais 512Mo ne sont pas choquants sur un système à 32Go etc.