Skip to contentSkip to conversation

KSM & hugepages

DISCUSSION Michael Tokarev 2 participants 2 messages Mar 23, 2010 KVM

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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_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.

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