Re: [PATCH 0/4] ksm - dynamic page sharing driver for linux

Izik Eidus
2008-11-11T19:08:21Z

Andrew Morton wrote:
> On Tue, 11 Nov 2008 15:21:37 +0200 Izik Eidus <ieidus@redhat.com> wrote:
>
>
>> KSM is a linux driver that allows dynamicly sharing identical memory pages
>> between one or more processes.
>>
>> unlike tradtional page sharing that is made at the allocation of the
>> memory, ksm do it dynamicly after the memory was created.
>> Memory is periodically scanned; identical pages are identified and merged.
>> the sharing is unnoticeable by the process that use this memory.
>> (the shared pages are marked as readonly, and in case of write
>> do_wp_page() take care to create new copy of the page)
>>
>> this driver is very useful for KVM as in cases of runing multiple guests
>> operation system of the same type, many pages are sharable.
>> this driver can be useful by OpenVZ as well.
>>
>
> These benefits should be quantified, please. Also any benefits to any
> other workloads should be identified and quantified.
>
Sure,
we have used KSM in production for about half year and the numbers that
came from our QA is:
using KSM for desktop (KSM was tested just for windows desktop workload)
you can run as many as
52 windows xp with 1 giga ram each on server with just 16giga ram. (this
is more than 300% overcommit)
the reason is that most of the kernel/dlls of this guests is shared and
in addition we are sharing the windows zero
(windows keep making all its free memory as zero, so every time windows
release memory we take the page back to the host)
there is slide that give this numbers you can find at:
http://kvm.qumranet.com/kvmwiki/KvmForum2008?action=AttachFile&do=get&target=kdf2008_3.pdf
(slide 27)
beside more i gave presentation about ksm that can be found at:
http://kvm.qumranet.com/kvmwiki/KvmForum2008?action=AttachFile&do=get&target=kdf2008_12.pdf

if more numbers are wanted for other workloads i can test it.
(the idea of ksm is to run it slowly slowy at low priority and let it
merge pages when no one need the cpu)