Hello Thierry,
I will try to help showing some information gathered from my lab server as
you requested:
- Enviroment:
10 x Ubuntu 10.04 x86_64 with several services (SMTP, MySQL, Oracle, DB2,
TeamSpeak servers, Tomcats, bind ... etc).
1 x Windows 7 x86_64
3 x Debian Lenny x86_64 (iscsitarget, pacemaker cluster testing)
RAM schema (assigned to the VMs): 3 vms 128 MB, 6 vms 256 MB, 2 vms 512 MB, 1
vm 768 MB, 2 vms 1GB
SMP: 5 vms with 2 SMP (num vCPU) configured, rest 1 SMP
- Hardware:
1 x Intel(R) Core(TM)2 Quad CPU @ 2.66GHz
8 GB RAM DDR2 800 Mhz / 25 ns
---------------------------------------------
* Summary:
Usefull information:
CPU % usage goes stable, also memory is examined and released after the 3rd
full_scans
CPU % usage is specially high between 1st and 2nd scan (when ksm is merging
pages at the same time that it is doing the second scan)
Memory starts being released after the 1st scan is completly and the 2nd is
in progress (so past some minutes)
KSM default pages_to_scan:100 sleep_millisecs:20 CPU: ~11,67%
Time_for_a_full_scan: 3m35.209s
KSM pages_to_scan:60 sleep_millisecs:40 CPU: ~3,44% Time_for_a_full_scan:
11m50.734s
KSM pages_to_scan:100 sleep_millisecs:50 CPU: ~4,21% Time_for_a_full_scan:
8m55.533s
KSM pages_to_scan:60 sleep_millisecs:60 CPU: ~2,00% Time_for_a_full_scan:
17m46.094s
KSM pages_to_scan:100 sleep_millisecs:120 CPU: ~1,67% Time_for_a_full_scan:
21m26.285s
Mem Optimization in all the tests (there before or after):
RAM available (reminder): 8 GB
Memory optimizacition thanks to ksm: 14-16% full available memory (~ 1.3 /
1.1 Gb of more free memory)
Conclusions:
ksm is good but need some tweaks to doesnt become a problem more than a help
I'd consider to off ksm in /etc/default/qemu-kvm for desktop versions of
Ubuntu (availabe but off by default)
I'd consider to switch default value of sleep_millisecs: 120 even a bit
higher in the ubuntu server version. More conservative...
-------------------------------------------
r...@core:/sys/kernel/mm/ksm# echo 2 > /sys/kernel/mm/ksm/run
r...@core:/sys/kernel/mm/ksm# sleep 30
r...@core:/sys/kernel/mm/ksm# landscape-sysinfo
System load: 1.02 IP address for lo: xxx
Usage of /home: 66.1% of 2.68TB IP address for eth1: xxx
Memory usage: 60% IP address for eth1:0: xxx
Swap usage: 0% IP address for bond0: xxx
Processes: 199 IP address for br0: xxx
Users logged in: 1
r...@core:/sys/kernel/mm/ksm# echo 1 > /sys/kernel/mm/ksm/run ; time
/tmp/tmp.bash
real 3m35.209s
user 0m0.070s
sys 0m0.130s
[... /tmp/tmp.bash
#!/bin/bash
while true
do
SALIDA=`cat /sys/kernel/mm/ksm/full_scans`
if [ $SALIDA == "1" ]
then
break
else
sleep 5
fi
done
.... yeee... terrible but enough for a script done in 10 secs...]
[...waiting for a pair of aditional scans...]
r...@core:/sys/kernel/mm/ksm# cat full_scans
3
r...@core:/sys/kernel/mm/ksm# ps axuw | grep ksm | grep -v grep
root 53 10.7 0.0 0 0 ? SN 17:51 12:08 \_ [ksmd]
(Cycle/scan time is 3m35secs ~= 215 secs -- doing check each 2 secs so I'll
use "iostat -p <pid> 2 215/2")
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 108
Linux 2.6.32-24-server (core) 18/08/10 _x86_64_ (4 CPU)
[...]
Media: 53 0,00 11,67 0,00 11,67 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
4
r...@core:/sys/kernel/mm/ksm# cat max_kernel_pages
511518
r...@core:/sys/kernel/mm/ksm# cat pages_shared
42045
r...@core:/sys/kernel/mm/ksm# cat pages_sharing
287118
r...@core:/sys/kernel/mm/ksm# cat pages_to_scan
100
r...@core:/sys/kernel/mm/ksm# cat pages_unshared
622240
r...@core:/sys/kernel/mm/ksm# cat pages_volatile
97214
r...@core:/sys/kernel/mm/ksm# cat run
1
r...@core:/sys/kernel/mm/ksm# cat sleep_millisecs
20
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 1000880 kB
Buffers: 432396 kB
Cached: 2865740 kB
SwapCached: 0 kB
[...]
r...@core:/sys/kernel/mm/ksm# landscape-sysinfo
System load: 6.44 IP address for lo: xxx
Usage of /home: 66.1% of 2.68TB IP address for eth1: xxx
Memory usage: 44% IP address for eth1:0: xxx
Swap usage: 0% IP address for bond0: xxx
Processes: 199 IP address for br0: xxx
Users logged in: 1
------------------------------------------------------------
r...@core:/sys/kernel/mm/ksm# echo 2 > /sys/kernel/mm/ksm/run
r...@core:/sys/kernel/mm/ksm# sleep 30
r...@core:/sys/kernel/mm/ksm# echo 40 > /sys/kernel/mm/ksm/sleep_millisecs
r...@core:/sys/kernel/mm/ksm# echo 60 > /sys/kernel/mm/ksm/pages_to_scan
r...@core:/sys/kernel/mm/ksm# echo 1 > /sys/kernel/mm/ksm/run ; time
/tmp/tmp.bash
real 11m50.734s
user 0m0.270s
sys 0m0.390s
[...waiting for a pair of aditional scan...]
r...@core:/sys/kernel/mm/ksm# cat full_scans
3
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 355
Linux 2.6.32-24-server (core) 19/08/10 _x86_64_ (4 CPU)
00:05:57 PID %usr %system %guest %CPU CPU Command
00:05:59 53 0,00 0,00 0,00 0,00 0 ksmd
00:06:01 53 0,00 4,00 0,00 4,00 0 ksmd
[...]
00:17:45 53 0,00 1,50 0,00 1,50 0 ksmd
00:17:47 53 0,00 0,50 0,00 0,50 0 ksmd
Media: 53 0,00 3,44 0,00 3,44 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
4
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 1027900 kB
Buffers: 478248 kB
Cached: 2684208 kB
SwapCached: 1020 kB
------------------------------------------------------------
r...@core:/sys/kernel/mm/ksm# echo 2 > /sys/kernel/mm/ksm/run
r...@core:/sys/kernel/mm/ksm# echo 50 > /sys/kernel/mm/ksm/sleep_millisecs
r...@core:/sys/kernel/mm/ksm# echo 100 > /sys/kernel/mm/ksm/pages_to_scan
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 59480 kB
Buffers: 485952 kB
Cached: 2636984 kB
SwapCached: 1120 kB
[...]
r...@core:/sys/kernel/mm/ksm# echo 1 > run; time /tmp/tmp.sh
real 8m55.533s
user 0m0.180s
sys 0m0.380s
[...waiting for a pair of aditional scans...]
r...@core:/sys/kernel/mm/ksm# cat full_scans
3
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 1026668 kB
Buffers: 482376 kB
Cached: 2642836 kB
SwapCached: 1316 kB
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 267
Linux 2.6.32-24-server (core) 19/08/10 _x86_64_ (4 CPU)
00:40:40 PID %usr %system %guest %CPU CPU Command
00:40:42 53 0,00 1,50 0,00 1,50 2 ksmd
00:40:44 53 0,00 11,00 0,00 11,00 2 ksmd
[...]
00:49:32 53 0,00 6,00 0,00 6,00 2 ksmd
00:49:34 53 0,00 6,00 0,00 6,00 2 ksmd
Media: 53 0,00 4,21 0,00 4,21 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
4
------------------------------------------------------------
r...@core:/sys/kernel/mm/ksm# echo 2 > /sys/kernel/mm/ksm/run
r...@core:/sys/kernel/mm/ksm# echo 60 > /sys/kernel/mm/ksm/sleep_millisecs
r...@core:/sys/kernel/mm/ksm# echo 60 > /sys/kernel/mm/ksm/pages_to_scan
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 63684 kB
Buffers: 501664 kB
Cached: 2606948 kB
SwapCached: 1316 kB
[...]
r...@core:/sys/kernel/mm/ksm# echo 1 > run; time /tmp/tmp.sh
real 17m46.094s
user 0m0.400s
sys 0m0.540s
[...waiting for a pair of aditional scans...]
r...@core:/sys/kernel/mm/ksm# cat full_scans
3
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 533
Linux 2.6.32-24-server (core) 19/08/10 _x86_64_ (4 CPU)
01:48:30 PID %usr %system %guest %CPU CPU Command
01:48:32 53 0,00 0,00 0,00 0,00 1 ksmd
01:48:34 53 0,00 3,00 0,00 3,00 2 ksmd
[...]
02:06:14 53 0,00 0,50 0,00 0,50 2 ksmd
02:06:16 53 0,00 3,50 0,00 3,50 2 ksmd
Media: 53 0,00 2,00 0,00 2,00 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
4
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 938949 kB
Buffers: 525132 kB
Cached: 2615487 kB
SwapCached: 1184 kB
------------------------------------------------------------
r...@core:/sys/kernel/mm/ksm# echo 2 > /sys/kernel/mm/ksm/run
r...@core:/sys/kernel/mm/ksm# echo 120 > /sys/kernel/mm/ksm/sleep_millisecs
r...@core:/sys/kernel/mm/ksm# echo 100 > /sys/kernel/mm/ksm/pages_to_scan
r...@core:/sys/kernel/mm/ksm# cat /proc/meminfo
MemTotal: 8194212 kB
MemFree: 58696 kB
Buffers: 464916 kB
Cached: 2637064 kB
SwapCached: 1184 kB
[...]
r...@core:/sys/kernel/mm/ksm# landscape-sysinfo
System load: 2.44 IP address for lo: xxx
Usage of /home: 66.1% of 2.68TB IP address for eth1: xxx
Memory usage: 64% IP address for eth1:0: xxx
Swap usage: 0% IP address for bond0: xxx
Processes: 204 IP address for br0: xxx
Users logged in: 1
r...@core:/sys/kernel/mm/ksm# echo 1 > run; time /tmp/tmp.sh
real 21m26.285s
user 0m0.520s
sys 0m0.990s
[...waiting for a pair of aditional scans...]
r...@core:/sys/kernel/mm/ksm# cat full_scans
2
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 643
Linux 2.6.32-24-server (core) 19/08/10 _x86_64_ (4 CPU)
03:17:21 PID %usr %system %guest %CPU CPU Command
03:17:23 53 0,00 2,00 0,00 2,00 0 ksmd
03:17:25 53 0,00 0,00 0,00 0,00 0 ksmd
[...]
03:38:45 53 0,00 1,50 0,00 1,50 0 ksmd
03:38:47 53 0,00 0,00 0,00 0,00 0 ksmd
Media: 53 0,00 1,67 0,00 1,67 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
3
r...@core:/sys/kernel/mm/ksm# pidstat -p 53 2 643
Linux 2.6.32-24-server (core) 19/08/10 _x86_64_ (4 CPU)
03:38:47 PID %usr %system %guest %CPU CPU Command
03:38:49 53 0,00 0,00 0,00 0,00 0 ksmd
03:38:51 53 0,00 0,50 0,00 0,50 0 ksmd
[...]
04:00:13 53 0,00 0,00 0,00 0,00 0 ksmd
Media: 53 0,00 1,67 0,00 1,67 - ksmd
r...@core:/sys/kernel/mm/ksm# cat full_scans
4
--
Lucid qemu-kvm: ksmd default config is CPU hog
https://bugs.launchpad.net/bugs/578930
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs