deci swappiness-ul ăla e un parametru (sysctl) al kernel-ului ce definește proprietatea de balansare a memoriei run-time din ram în raport cu srierea paginilor de memorie din cache-ul nucleului, pe disk (aka swapping). default are valoarea 60, la debian (vm.swappiness = 60). ia valori între 0 și 100. la vm.swappiness = 0, it drops pages from the cache to disk doar atunci când se rămâne efectiv fără memorie RAM liberă. adică atunci când cache-ul disk-ului este plin, datorită operațiunilor de citire/scriere intensive de pe disk (de-asta tot zic să te uiți la valoarea de memorie liberă, luând în considerare și caching-ul, parte de memorie care se eliberează, atunci când alte procese au nevoie de a-și aloca memorie (gen, cu un apel de malloc()). adică pentru a evita un oom-kill, dat automat de kernel (în cazul în care se depășește over-commit-ul, și procesele fac request-uri de alocare), printr-un mecanism intern de "memory recover", adică oom-killer. uite un exemplu de oom-kill: kernel: [6450307.204647] nessusd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 kernel: [6450307.204670] nessusd cpuset=/ mems_allowed=0 kernel: [6450307.204681] Pid: 3872, comm: nessusd Not tainted 3.2.0-24-virtual kernel: [6450307.204684] Call Trace: kernel: [6450307.204724] [] dump_header.isra.6+0x85/0xc0 kernel: [6450307.204728] [] oom_kill_process+0x5c/0x80 kernel: [6450307.204732] [] out_of_memory+0xc5/0x1c0 kernel: [6450307.204736] [] __alloc_pages_nodemask+0x6c3/0x6e0 kernel: [6450307.204741] [] ? __do_page_cache_readahead+0x144/0x170 kernel: [6450307.204744] [] filemap_fault+0x1f8/0x370 kernel: [6450307.204754] [] ? mntput+0x18/0x30 kernel: [6450307.204764] [] __do_fault+0x6e/0x550 kernel: [6450307.204768] [] handle_pte_fault+0x95/0x2c0 kernel: [6450307.204772] [] handle_mm_fault+0x15e/0x2c0 kernel: [6450307.204789] [] do_page_fault+0x15b/0x490 kernel: [6450307.204799] [] ? sys_stat64+0x2b/0x30 kernel: [6450307.204802] [] ? arch_trampoline_kprobe+0x10/0x10 kernel: [6450307.204805] [] do_async_page_fault+0x2d/0x70 kernel: [6450307.204813] [] error_code+0x67/0x6c kernel: [6450307.204821] [] ? ab8500_gpadc_read_calibration_data+0xd9/0x1cf kernel: [6450307.204892] 301 total pagecache pages kernel: [6450307.204894] 0 pages in swap cache kernel: [6450307.204898] Swap cache stats: add 0, delete 0, find 0/0 kernel: [6450307.204900] Free swap = 0kB kernel: [6450307.204901] Total swap = 0kB kernel: [6450307.206040] 131053 pages RAM kernel: [6450307.206047] 0 pages HighMem kernel: [6450307.206049] 4148 pages reserved kernel: [6450307.206050] 1065 pages shared kernel: [6450307.206051] 124571 pages non-shared kernel: [6450307.206333] Out of memory: Kill process 14385 (nessusd) score 296 or sacrifice child kernel: [6450307.206345] Killed process 14385 (nessusd) total-vm:210864kB, anon-rss:165328kB, file-rss:0kB după cum se observă, e vorba de un caz în care nu există swap deloc. pentru vm.swappiness = 100, kernel-ul scrie paginile de memorie pe disk (în swap) aproape instantaneu, ceea ce, evident, îngreunează performanțele de i/o, la greu. mai ales dacă ai disk-uri/sisteme de fișiere încete, hahah. deci valoarea de 60, care e default, e undeva pe la mijloc. verifici valoarea curentă un: % cat /proc/sys/vm/swappiness