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

From: Izik Eidus
Date: Tue Nov 11 2008 - 14:08:22 EST


Andrew Morton wrote:
On Tue, 11 Nov 2008 15:21:37 +0200 Izik Eidus <ieidus@xxxxxxxxxx> 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)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/