Le 29 septembre 2014 15:26, jean-yves@lenhof.eu.org a écrit :
Le 2014-09-29 12:13, adrien nayrat a écrit :
Bonjour,
J'ai rencontré des erreurs Out Of memory sur un serveur de bdd, on avait ces messages d'erreurs à la création de process : Sep 29 10:42:26 hostname t of memory [13286]
Je suppose qu'il faut lire "Out of memory" ici ?
Oui mais c'est cette ligne qui apparait dans les logs.
La machine possède 20Go de ram et en a utilisé la moitié pour le cache.
32 bits ? 64 bits ? OS ? Version ? Version de kernel ?
64 Bits, Centos 6.5 kernel : 2.6.32-431.20.3.el6.x86_64
ulimit -a sur l'utilisateur qui fait tourner postgresql donne quoi ?
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 159701 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1048560 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 65535 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Cdlt,
JYL
Le 29 septembre 2014 15:12, Aurélien footplus@gmail.com a écrit :
Hello,
Et sans swap du tout ? Je pense que si tu commences à mettre ta bdd dans le swap, tu as un souci non ?
Je sais qu'on a fini par dégager entièrement le swap de certaines machines (sql, varnish, etc), et que ça tourne très bien.
Cordialement,
Aurélien Guillaume
Oui, en fait c'est un peu trompeur cette histoire de swap. Je pense avoir trouvé.
Pour info, quand on fait un cat /proc/meminfo Il y a ces deux lignes : CommitLimit: 28887044 kB Committed_AS: 24921056 kB
Elles indiquent la quantité de mémoire allouable (CommitLimit en gros : RAM + SWAP)[1] et la quantité allouée (Committed_AS) . Vu qu'on a interdit la sur-allocation (overcommit=2) Committed_AS ne peut être supérieur à CommitLimit.[2] Quand on fait un free -m, c'est assez trompeur, la commande indique la mémoire utilisée et non la mémoire allouée.
Sur une même machine au même moment : free -m total used free shared buffers cached Mem: 24086 19908 4177 0 227 8021 -/+ buffers/cache: 11660 12426 Swap: 5327 0 5327
cat /proc/meminfo CommitLimit: 28887044 kB Committed_AS: 25343012 kB
On pense avoir 12Go de libre alors qu'on a 28887044 -25343012 => 3Go de libre!
La solution serait soit d'augmenter la RAM de la machine soit d'augmenter la swap même si elle ne sera jamais utilisée. On va revoir quelques check sur notre nagios! Merci pour vos retours
[1] : http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Document... [2] : http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Document...