KSM & hugepages
Hello.
I noticed an interesting thing here, with qemu-kvm, KSM and hugepages.
When I initially enabled KSM, for my two windows guests I've seen ~100 000 pages in /sys/kernel/mm/ksm/pages_shared . That's quite good, and overall memory usage improved.
Now, I also enabled hugepages in kvm, which speed things up quite significantly (the speedup is noticeable).
But now, when both KSM and hugepages are activated, I don't see KSM in action anymore. /sys/../mm/pages_shared shows 56 pages, which is nothing.
So I wonder what's up:
o that's 56 _huge_ pages (which means the actual saving is 56*2M = 112Mb, which isn't really bad). If that's the case, /sys/../mm/ interface lacks proper units reporting;
o due to large pages there's much less chance to find two pages with identical contents, so very little can be shared;
o KSM does not scan hugepages at all
o something else.
What is the issue here?
Thanks!
/mjt
Quoted 27 lines · Michael Tokarev
Hello.
I noticed an interesting thing here, with qemu-kvm, KSM and hugepages.
When I initially enabled KSM, for my two windows guests I've seen ~100 000 pages in
/sys/kernel/mm/ksm/pages_shared. That's quite good, and overall memory usage improved.Now, I also enabled hugepages in kvm, which speed things up quite significantly (the speedup is noticeable).
But now, when both KSM and hugepages are activated, I don't see KSM in action anymore.
/sys/../mm/pages_sharedshows 56 pages, which is nothing.So I wonder what's up:
o that's 56 _huge_ pages (which means the actual saving is 56*2M = 112Mb, which isn't really bad). If that's the case,/sys/../mm/interface lacks proper units reporting;
o due to large pages there's much less chance to find two pages with identical contents, so very little can be shared;
o KSM does not scan hugepages at all
o something else.
Quoted 3 lines
What is the issue here?
Those pages aren't scanned since ksm only scans anonymous memory; hugetlbfs is file backed memory. Even if it were anonymous memory, ksm doesn't support merging large pages (and the probability of finding a match is practically nil). No idea where the 56 comes from - perhaps a leak from the previous runs?
Signature · 1 line
error compiling committee.c: too many arguments to function