|
From: Rik v. R. <ri...@re...> - 2011-01-21 00:18:03
|
On 01/07/2011 05:03 PM, Satoru Moriya wrote: > The result is following. > > | default | case 1 | case 2 | > ---------------------------------------------------------- > wmark_min_kbytes | 5752 | 5752 | 5752 | > wmark_low_kbytes | 7190 | 16384 | 32768 | (KB) > wmark_high_kbytes | 8628 | 20480 | 40960 | > ---------------------------------------------------------- > real | 503 | 364 | 337 | > user | 3 | 5 | 4 | (msec) > sys | 153 | 149 | 146 | > ---------------------------------------------------------- > page fault | 32768 | 32768 | 32768 | > kswapd_wakeup | 1809 | 335 | 228 | (times) > direct reclaim | 5 | 0 | 0 | > > As you can see, direct reclaim was performed 5 times and > its exec time was 503 msec in the default case. On the other > hand, in case 1 (large delta case ) no direct reclaim was > performed and its exec time was 364 msec. Saving 1.5 seconds on a one-off workload is probably not worth the complexity of giving a system administrator yet another set of tunables to mess with. However, I suspect it may be a good idea if the kernel could adjust these watermarks automatically, since direct reclaim could lead to quite a big performance penalty. I do not know which events should be used to increase and decrease the watermarks, but I have some ideas: - direct reclaim (increase) - kswapd has trouble freeing pages (increase) - kswapd frees enough memory at DEF_PRIORITY (decrease) - next to no direct reclaim events in the last N (1000?) reclaim events (decrease) I guess we will also need to be sure that the watermarks are never raised above some sane upper threshold. Maybe 4x or 5x the default? -- All rights reversed |