Désactiver complètement le swap est rarement une bonne idée, il est plus prudent d'en laisser un peu avec le swapiness très bas (ou à 0).
Par contre, pour le soucis de ram utilisée, il faut également regarder du coté du NUMA interleaving si le serveur est multi-CPU en architecture NUMA, si l'interleaving n'est ni activé dans le bios, ni forcé au niveau applicatif avec numactl, un processus ne pourra pas utiliser à lui tout seul plus que la mémoire physique attenante à un CPU physique (RAM/nombre de CPU).
Le 29/09/2014 16:57, adrien nayrat a écrit :
Le 29 septembre 2014 16:37, nap naparuba@gmail.com a écrit :
2014-09-29 16:15 GMT+02:00 frsag@jack.fr.eu.org:
Pourquoi tu met du swap avec 20G de ram ? Vu le faible montant dudit swap, j'imagine qu'il n'est pas vraiment requis.
Pourquoi ne pas virer le swap ?
+1. sur mes serveurs Oracle c'était 0 de swap (enfin si à l'install car Oracel check, mais après hop on vire). Même avec swapiness à 0 le swap st trop utilisé face au cache disque (or dans lecas d'une bdd on préfère que ce soit la base qui gère ça, pas trop le système).
Surtout qu'il faut se poser la question de voir ce qui se passe quand tu es déjà à jouer avec le swap pour une vraie raison (donc trop de conso, pas juste le cache qui ne veux pas rétrécir). Dans mon cas il valait mieux que ça explose gentiment (HA inside) plutôt qu'un ralentissement qui te fait perdre la main sur la machine.
Jean
Qu'est-ce que tu avais comme valeur d'overcommit?
Je comprends votre volonté de mettre un swap à 0. pour info on avait gardé un swap juste "au-cas-ou" mais le swap n'est absolument pas utilisé. Le free -m le confirme, on avait des "out of memory" alors qu'on avait 0 à l'utilisation du swap. En désactivant la sur-allocation la machine est beaucoup plus stricte, donc comme je l'avais proposé on peut augmenter la RAM ou augmenter la swap pour jouer sur le CommitLimit . La swap ne serait utilisée seulement si tous les process se mettaient à consommer toute la mémoire qu'ils avaient alloué. sur notre serveur c'est loin d'être le cas, à peine 50% de la RAM utilisée, le reste c'est du cache disque.
Pour info : With strict overcommit enabled on the system (mode 2 in 'vm.overcommit_memory'),allocations which would exceed the CommitLimit (detailed above) will not be permitted.
The CommitLimit is calculated with the following formula: CommitLimit = ([total RAM pages] - [total huge TLB pages]) * overcommit_ratio / 100 + [total swap pages]
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Document...