On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote:
> One scenario that might be useful to test is what happens when some very large
> processes, all mapped and executable exceed memory and fight each other
> for the working set. Do you have regressions then compared to without
> the patches?
I managed to carry out some stress tests for memory tight desktops.
The outcome is encouraging: clock time and major faults are reduced
by 50%, and pswpin numbers are reduced to ~1/3.
Here is the test scenario.
- nfsroot gnome desktop with 512M physical memory
- run some programs, and switch between the existing windows after
starting each new program.
The progress timing (seconds) is:
before after programs
0.02 0.02 N xeyes
0.75 0.76 N firefox
2.02 1.88 N nautilus
3.36 3.17 N nautilus --browser
5.26 4.89 N gthumb
7.12 6.47 N gedit
9.22 8.16 N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
13.58 12.55 N xterm
15.87 14.57 N mlterm
18.63 17.06 N gnome-terminal
21.16 18.90 N urxvt
26.24 23.48 N gnome-system-monitor
28.72 26.52 N gnome-help
32.15 29.65 N gnome-dictionary
39.66 36.12 N /usr/games/sol
43.16 39.27 N /usr/games/gnometris
48.65 42.56 N /usr/games/gnect
53.31 47.03 N /usr/games/gtali
58.60 52.05 N /usr/games/iagno
65.77 55.42 N /usr/games/gnotravex
70.76 61.47 N /usr/games/mahjongg
76.15 67.11 N /usr/games/gnome-sudoku
86.32 75.15 N /usr/games/glines
92.21 79.70 N /usr/games/glchess
103.79 88.48 N /usr/games/gnomine
113.84 96.51 N /usr/games/gnotski
124.40 102.19 N /usr/games/gnibbles
137.41 114.93 N /usr/games/gnobots2
155.53 125.02 N /usr/games/blackjack
179.85 135.11 N /usr/games/same-gnome
224.49 154.50 N /usr/bin/gnome-window-properties
248.44 162.09 N /usr/bin/gnome-default-applications-properties
282.62 173.29 N /usr/bin/gnome-at-properties
323.72 188.21 N /usr/bin/gnome-typing-monitor
363.99 199.93 N /usr/bin/gnome-at-visual
394.21 206.95 N /usr/bin/gnome-sound-properties
435.14 224.49 N /usr/bin/gnome-at-mobility
463.05 234.11 N /usr/bin/gnome-keybinding-properties
503.75 248.59 N /usr/bin/gnome-about-me
554.00 276.27 N /usr/bin/gnome-display-properties
615.48 304.39 N /usr/bin/gnome-network-preferences
693.03 342.01 N /usr/bin/gnome-mouse-properties
759.90 388.58 N /usr/bin/gnome-appearance-properties
937.90 508.47 N /usr/bin/gnome-control-center
1109.75 587.57 N /usr/bin/gnome-keyboard-properties
1399.05 758.16 N : oocalc
1524.64 830.03 N : oodraw
1684.31 900.03 N : ooimpress
1874.04 993.91 N : oomath
2115.12 1081.89 N : ooweb
2369.02 1161.99 N : oowriter
Note that the oo* commands are actually commented out.
The vmstat numbers are (some relevant ones are marked with *):
before after
nr_free_pages 1293 3898
nr_inactive_anon 59956 53460
nr_active_anon 26815 30026
nr_inactive_file 2657 3218
nr_active_file 2019 2806
nr_unevictable 4 4
nr_mlock 4 4
nr_anon_pages 26706 27859
*nr_mapped 3542 4469
nr_file_pages 72232 67681
nr_dirty 1 0
nr_writeback 123 19
nr_slab_reclaimable 3375 3534
nr_slab_unreclaimable 11405 10665
nr_page_table_pages 8106 7864
nr_unstable 0 0
nr_bounce 0 0
*nr_vmscan_write 394776 230839
nr_writeback_temp 0 0
numa_hit 6843353 3318676
numa_miss 0 0
numa_foreign 0 0
numa_interleave 1719 1719
numa_local 6843353 3318676
numa_other 0 0
*pgpgin 5954683 2057175
*pgpgout 1578276 922744
*pswpin 1486615 512238
*pswpout 394568 230685
pgalloc_dma 277432 56602
pgalloc_dma32 6769477 3310348
pgalloc_normal 0 0
pgalloc_movable 0 0
pgfree 7048396 3371118
pgactivate 2036343 1471492
pgdeactivate 2189691 1612829
pgfault 3702176 3100702
*pgmajfault 452116 201343
pgrefill_dma 12185 7127
pgrefill_dma32 334384 653703
pgrefill_normal 0 0
pgrefill_movable 0 0
pgsteal_dma 74214 22179
pgsteal_dma32 3334164 1638029
pgsteal_normal 0 0
pgsteal_movable 0 0
pgscan_kswapd_dma 1081421 1216199
pgscan_kswapd_dma32 58979118 46002810
pgscan_kswapd_normal 0 0
pgscan_kswapd_movable 0 0
pgscan_direct_dma 2015438 1086109
pgscan_direct_dma32 55787823 36101597
pgscan_direct_normal 0 0
pgscan_direct_movable 0 0
pginodesteal 3461 7281
slabs_scanned 564864 527616
kswapd_steal 2889797 1448082
kswapd_inodesteal 14827 14835
pageoutrun 43459 21562
allocstall 9653 4032
pgrotated 384216 228631
htlb_buddy_alloc_success 0 0
htlb_buddy_alloc_fail 0 0
unevictable_pgs_culled 0 0
unevictable_pgs_scanned 0 0
unevictable_pgs_rescued 0 0
unevictable_pgs_mlocked 4 4
unevictable_pgs_munlocked 0 0
unevictable_pgs_cleared 0 0
unevictable_pgs_stranded 0 0
unevictable_pgs_mlockfreed 0 0
> On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote:
> > One scenario that might be useful to test is what happens when some very large
> > processes, all mapped and executable exceed memory and fight each other
> > for the working set. Do you have regressions then compared to without
> > the patches?
>
> I managed to carry out some stress tests for memory tight desktops.
> The outcome is encouraging: clock time and major faults are reduced
> by 50%, and pswpin numbers are reduced to ~1/3.
>
> Here is the test scenario.
> - nfsroot gnome desktop with 512M physical memory
> - run some programs, and switch between the existing windows after
> starting each new program.
>
> The progress timing (seconds) is:
>
> before after programs
> 0.02 0.02 N xeyes
> 0.75 0.76 N firefox
> 2.02 1.88 N nautilus
> 3.36 3.17 N nautilus --browser
> 5.26 4.89 N gthumb
> 7.12 6.47 N gedit
> 9.22 8.16 N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
> 13.58 12.55 N xterm
> 15.87 14.57 N mlterm
> 18.63 17.06 N gnome-terminal
> 21.16 18.90 N urxvt
> 26.24 23.48 N gnome-system-monitor
> 28.72 26.52 N gnome-help
> 32.15 29.65 N gnome-dictionary
> 39.66 36.12 N /usr/games/sol
> 43.16 39.27 N /usr/games/gnometris
> 48.65 42.56 N /usr/games/gnect
> 53.31 47.03 N /usr/games/gtali
> 58.60 52.05 N /usr/games/iagno
> 65.77 55.42 N /usr/games/gnotravex
> 70.76 61.47 N /usr/games/mahjongg
> 76.15 67.11 N /usr/games/gnome-sudoku
> 86.32 75.15 N /usr/games/glines
> 92.21 79.70 N /usr/games/glchess
> 103.79 88.48 N /usr/games/gnomine
> 113.84 96.51 N /usr/games/gnotski
> 124.40 102.19 N /usr/games/gnibbles
> 137.41 114.93 N /usr/games/gnobots2
> 155.53 125.02 N /usr/games/blackjack
> 179.85 135.11 N /usr/games/same-gnome
> 224.49 154.50 N /usr/bin/gnome-window-properties
> 248.44 162.09 N /usr/bin/gnome-default-applications-properties
> 282.62 173.29 N /usr/bin/gnome-at-properties
> 323.72 188.21 N /usr/bin/gnome-typing-monitor
> 363.99 199.93 N /usr/bin/gnome-at-visual
> 394.21 206.95 N /usr/bin/gnome-sound-properties
> 435.14 224.49 N /usr/bin/gnome-at-mobility
> 463.05 234.11 N /usr/bin/gnome-keybinding-properties
> 503.75 248.59 N /usr/bin/gnome-about-me
> 554.00 276.27 N /usr/bin/gnome-display-properties
> 615.48 304.39 N /usr/bin/gnome-network-preferences
> 693.03 342.01 N /usr/bin/gnome-mouse-properties
> 759.90 388.58 N /usr/bin/gnome-appearance-properties
> 937.90 508.47 N /usr/bin/gnome-control-center
> 1109.75 587.57 N /usr/bin/gnome-keyboard-properties
> 1399.05 758.16 N : oocalc
> 1524.64 830.03 N : oodraw
> 1684.31 900.03 N : ooimpress
> 1874.04 993.91 N : oomath
> 2115.12 1081.89 N : ooweb
> 2369.02 1161.99 N : oowriter
Thanks this great effort!
I definitely agree this patch sould be merge to -mm asap.
Acked-by: KOSAKI Motohiro <[email protected]>
On Mon, Jun 08, 2009 at 03:51:53PM +0800, KOSAKI Motohiro wrote:
> > On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote:
> > > One scenario that might be useful to test is what happens when some very large
> > > processes, all mapped and executable exceed memory and fight each other
> > > for the working set. Do you have regressions then compared to without
> > > the patches?
> >
> > I managed to carry out some stress tests for memory tight desktops.
> > The outcome is encouraging: clock time and major faults are reduced
> > by 50%, and pswpin numbers are reduced to ~1/3.
> >
> > Here is the test scenario.
> > - nfsroot gnome desktop with 512M physical memory
> > - run some programs, and switch between the existing windows after
> > starting each new program.
> >
> > The progress timing (seconds) is:
> >
> > before after programs
> > 0.02 0.02 N xeyes
> > 0.75 0.76 N firefox
> > 2.02 1.88 N nautilus
> > 3.36 3.17 N nautilus --browser
> > 5.26 4.89 N gthumb
> > 7.12 6.47 N gedit
> > 9.22 8.16 N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
> > 13.58 12.55 N xterm
> > 15.87 14.57 N mlterm
> > 18.63 17.06 N gnome-terminal
> > 21.16 18.90 N urxvt
> > 26.24 23.48 N gnome-system-monitor
> > 28.72 26.52 N gnome-help
> > 32.15 29.65 N gnome-dictionary
> > 39.66 36.12 N /usr/games/sol
> > 43.16 39.27 N /usr/games/gnometris
> > 48.65 42.56 N /usr/games/gnect
> > 53.31 47.03 N /usr/games/gtali
> > 58.60 52.05 N /usr/games/iagno
> > 65.77 55.42 N /usr/games/gnotravex
> > 70.76 61.47 N /usr/games/mahjongg
> > 76.15 67.11 N /usr/games/gnome-sudoku
> > 86.32 75.15 N /usr/games/glines
> > 92.21 79.70 N /usr/games/glchess
> > 103.79 88.48 N /usr/games/gnomine
> > 113.84 96.51 N /usr/games/gnotski
> > 124.40 102.19 N /usr/games/gnibbles
> > 137.41 114.93 N /usr/games/gnobots2
> > 155.53 125.02 N /usr/games/blackjack
> > 179.85 135.11 N /usr/games/same-gnome
> > 224.49 154.50 N /usr/bin/gnome-window-properties
> > 248.44 162.09 N /usr/bin/gnome-default-applications-properties
> > 282.62 173.29 N /usr/bin/gnome-at-properties
> > 323.72 188.21 N /usr/bin/gnome-typing-monitor
> > 363.99 199.93 N /usr/bin/gnome-at-visual
> > 394.21 206.95 N /usr/bin/gnome-sound-properties
> > 435.14 224.49 N /usr/bin/gnome-at-mobility
> > 463.05 234.11 N /usr/bin/gnome-keybinding-properties
> > 503.75 248.59 N /usr/bin/gnome-about-me
> > 554.00 276.27 N /usr/bin/gnome-display-properties
> > 615.48 304.39 N /usr/bin/gnome-network-preferences
> > 693.03 342.01 N /usr/bin/gnome-mouse-properties
> > 759.90 388.58 N /usr/bin/gnome-appearance-properties
> > 937.90 508.47 N /usr/bin/gnome-control-center
> > 1109.75 587.57 N /usr/bin/gnome-keyboard-properties
> > 1399.05 758.16 N : oocalc
> > 1524.64 830.03 N : oodraw
> > 1684.31 900.03 N : ooimpress
> > 1874.04 993.91 N : oomath
> > 2115.12 1081.89 N : ooweb
> > 2369.02 1161.99 N : oowriter
>
> Thanks this great effort!
> I definitely agree this patch sould be merge to -mm asap.
>
> Acked-by: KOSAKI Motohiro <[email protected]>
Thank you :)
To be complete, here are the free numbers at the end of the tests:
before patch:
total used free shared buffers cached
Mem: 474 467 7 0 0 236
-/+ buffers/cache: 230 243
Swap: 1023 418 605
after patch
total used free shared buffers cached
Mem: 474 457 16 0 0 236
-/+ buffers/cache: 221 253
Swap: 1023 404 619
Thanks,
Fengguang
On Mon, Jun 8, 2009 at 3:39 PM, Wu Fengguang<[email protected]> wrote:
> On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote:
>> One scenario that might be useful to test is what happens when some very large
>> processes, all mapped and executable exceed memory and fight each other
>> for the working set. Do you have regressions then compared to without
>> the patches?
>
> I managed to carry out some stress tests for memory tight desktops.
> The outcome is encouraging: clock time and major faults are reduced
> by 50%, and pswpin numbers are reduced to ~1/3.
>
> Here is the test scenario.
> - nfsroot gnome desktop with 512M physical memory
> - run some programs, and switch between the existing windows after
> ?starting each new program.
I think this is a story of VM_EXEC pages fighting against other kind of pages,
but as Andi said, did you test real regression case of VM_EXEC pages fighting
against each other?
"
One scenario that might be useful to test is what happens when some very large
processes, all mapped and executable exceed memory and fight each other
for the working set. Do you have regressions then compared to without
the patches?
-Andi
"
My experices with Compcache(http://code.google.com/p/compcache/) show that
it also has similar improvement in similar case on LTSP
(http://code.google.com/p/compcache/wiki/Performance).
But it does has a non-trivial performance loss even when doing kernel
compilation.
I am not a little surprised when Andrew said it "There must be some cost
somewhere".
So you have found the spots where your patch doing great,
make double sure it will not do something bad in all places,
and that will be perfect. :-)
>
> The progress timing (seconds) is:
>
> ?before ? ? ? after ? ?programs
> ? ?0.02 ? ? ? ?0.02 ? ?N xeyes
> ? ?0.75 ? ? ? ?0.76 ? ?N firefox
> ? ?2.02 ? ? ? ?1.88 ? ?N nautilus
> ? ?3.36 ? ? ? ?3.17 ? ?N nautilus --browser
> ? ?5.26 ? ? ? ?4.89 ? ?N gthumb
> ? ?7.12 ? ? ? ?6.47 ? ?N gedit
> ? ?9.22 ? ? ? ?8.16 ? ?N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
> ? 13.58 ? ? ? 12.55 ? ?N xterm
> ? 15.87 ? ? ? 14.57 ? ?N mlterm
> ? 18.63 ? ? ? 17.06 ? ?N gnome-terminal
> ? 21.16 ? ? ? 18.90 ? ?N urxvt
> ? 26.24 ? ? ? 23.48 ? ?N gnome-system-monitor
> ? 28.72 ? ? ? 26.52 ? ?N gnome-help
> ? 32.15 ? ? ? 29.65 ? ?N gnome-dictionary
> ? 39.66 ? ? ? 36.12 ? ?N /usr/games/sol
> ? 43.16 ? ? ? 39.27 ? ?N /usr/games/gnometris
> ? 48.65 ? ? ? 42.56 ? ?N /usr/games/gnect
> ? 53.31 ? ? ? 47.03 ? ?N /usr/games/gtali
> ? 58.60 ? ? ? 52.05 ? ?N /usr/games/iagno
> ? 65.77 ? ? ? 55.42 ? ?N /usr/games/gnotravex
> ? 70.76 ? ? ? 61.47 ? ?N /usr/games/mahjongg
> ? 76.15 ? ? ? 67.11 ? ?N /usr/games/gnome-sudoku
> ? 86.32 ? ? ? 75.15 ? ?N /usr/games/glines
> ? 92.21 ? ? ? 79.70 ? ?N /usr/games/glchess
> ?103.79 ? ? ? 88.48 ? ?N /usr/games/gnomine
> ?113.84 ? ? ? 96.51 ? ?N /usr/games/gnotski
> ?124.40 ? ? ?102.19 ? ?N /usr/games/gnibbles
> ?137.41 ? ? ?114.93 ? ?N /usr/games/gnobots2
> ?155.53 ? ? ?125.02 ? ?N /usr/games/blackjack
> ?179.85 ? ? ?135.11 ? ?N /usr/games/same-gnome
> ?224.49 ? ? ?154.50 ? ?N /usr/bin/gnome-window-properties
> ?248.44 ? ? ?162.09 ? ?N /usr/bin/gnome-default-applications-properties
> ?282.62 ? ? ?173.29 ? ?N /usr/bin/gnome-at-properties
> ?323.72 ? ? ?188.21 ? ?N /usr/bin/gnome-typing-monitor
> ?363.99 ? ? ?199.93 ? ?N /usr/bin/gnome-at-visual
> ?394.21 ? ? ?206.95 ? ?N /usr/bin/gnome-sound-properties
> ?435.14 ? ? ?224.49 ? ?N /usr/bin/gnome-at-mobility
> ?463.05 ? ? ?234.11 ? ?N /usr/bin/gnome-keybinding-properties
> ?503.75 ? ? ?248.59 ? ?N /usr/bin/gnome-about-me
> ?554.00 ? ? ?276.27 ? ?N /usr/bin/gnome-display-properties
> ?615.48 ? ? ?304.39 ? ?N /usr/bin/gnome-network-preferences
> ?693.03 ? ? ?342.01 ? ?N /usr/bin/gnome-mouse-properties
> ?759.90 ? ? ?388.58 ? ?N /usr/bin/gnome-appearance-properties
> ?937.90 ? ? ?508.47 ? ?N /usr/bin/gnome-control-center
> ?1109.75 ? ? ?587.57 ? ?N /usr/bin/gnome-keyboard-properties
> ?1399.05 ? ? ?758.16 ? ?N : oocalc
> ?1524.64 ? ? ?830.03 ? ?N : oodraw
> ?1684.31 ? ? ?900.03 ? ?N : ooimpress
> ?1874.04 ? ? ?993.91 ? ?N : oomath
> ?2115.12 ? ? 1081.89 ? ?N : ooweb
> ?2369.02 ? ? 1161.99 ? ?N : oowriter
>
> Note that the oo* commands are actually commented out.
>
> The vmstat numbers are (some relevant ones are marked with *):
>
> ? ? ? ? ? ? ? ? ? ? ? ? ? ?before ? ?after
> ?nr_free_pages ? ? ? ? ? ? ?1293 ? ? ?3898
> ?nr_inactive_anon ? ? ? ? ? 59956 ? ? 53460
> ?nr_active_anon ? ? ? ? ? ? 26815 ? ? 30026
> ?nr_inactive_file ? ? ? ? ? 2657 ? ? ?3218
> ?nr_active_file ? ? ? ? ? ? 2019 ? ? ?2806
> ?nr_unevictable ? ? ? ? ? ? 4 ? ? ? ? 4
> ?nr_mlock ? ? ? ? ? ? ? ? ? 4 ? ? ? ? 4
> ?nr_anon_pages ? ? ? ? ? ? ?26706 ? ? 27859
> *nr_mapped ? ? ? ? ? ? ? ? ?3542 ? ? ?4469
> ?nr_file_pages ? ? ? ? ? ? ?72232 ? ? 67681
> ?nr_dirty ? ? ? ? ? ? ? ? ? 1 ? ? ? ? 0
> ?nr_writeback ? ? ? ? ? ? ? 123 ? ? ? 19
> ?nr_slab_reclaimable ? ? ? ?3375 ? ? ?3534
> ?nr_slab_unreclaimable ? ? ?11405 ? ? 10665
> ?nr_page_table_pages ? ? ? ?8106 ? ? ?7864
> ?nr_unstable ? ? ? ? ? ? ? ?0 ? ? ? ? 0
> ?nr_bounce ? ? ? ? ? ? ? ? ?0 ? ? ? ? 0
> *nr_vmscan_write ? ? ? ? ? ?394776 ? ?230839
> ?nr_writeback_temp ? ? ? ? ?0 ? ? ? ? 0
> ?numa_hit ? ? ? ? ? ? ? ? ? 6843353 ? 3318676
> ?numa_miss ? ? ? ? ? ? ? ? ?0 ? ? ? ? 0
> ?numa_foreign ? ? ? ? ? ? ? 0 ? ? ? ? 0
> ?numa_interleave ? ? ? ? ? ?1719 ? ? ?1719
> ?numa_local ? ? ? ? ? ? ? ? 6843353 ? 3318676
> ?numa_other ? ? ? ? ? ? ? ? 0 ? ? ? ? 0
> *pgpgin ? ? ? ? ? ? ? ? ? ? 5954683 ? 2057175
> *pgpgout ? ? ? ? ? ? ? ? ? ?1578276 ? 922744
> *pswpin ? ? ? ? ? ? ? ? ? ? 1486615 ? 512238
> *pswpout ? ? ? ? ? ? ? ? ? ?394568 ? ?230685
> ?pgalloc_dma ? ? ? ? ? ? ? ?277432 ? ?56602
> ?pgalloc_dma32 ? ? ? ? ? ? ?6769477 ? 3310348
> ?pgalloc_normal ? ? ? ? ? ? 0 ? ? ? ? 0
> ?pgalloc_movable ? ? ? ? ? ?0 ? ? ? ? 0
> ?pgfree ? ? ? ? ? ? ? ? ? ? 7048396 ? 3371118
> ?pgactivate ? ? ? ? ? ? ? ? 2036343 ? 1471492
> ?pgdeactivate ? ? ? ? ? ? ? 2189691 ? 1612829
> ?pgfault ? ? ? ? ? ? ? ? ? ?3702176 ? 3100702
> *pgmajfault ? ? ? ? ? ? ? ? 452116 ? ?201343
> ?pgrefill_dma ? ? ? ? ? ? ? 12185 ? ? 7127
> ?pgrefill_dma32 ? ? ? ? ? ? 334384 ? ?653703
> ?pgrefill_normal ? ? ? ? ? ?0 ? ? ? ? 0
> ?pgrefill_movable ? ? ? ? ? 0 ? ? ? ? 0
> ?pgsteal_dma ? ? ? ? ? ? ? ?74214 ? ? 22179
> ?pgsteal_dma32 ? ? ? ? ? ? ?3334164 ? 1638029
> ?pgsteal_normal ? ? ? ? ? ? 0 ? ? ? ? 0
> ?pgsteal_movable ? ? ? ? ? ?0 ? ? ? ? 0
> ?pgscan_kswapd_dma ? ? ? ? ?1081421 ? 1216199
> ?pgscan_kswapd_dma32 ? ? ? ?58979118 ?46002810
> ?pgscan_kswapd_normal ? ? ? 0 ? ? ? ? 0
> ?pgscan_kswapd_movable ? ? ?0 ? ? ? ? 0
> ?pgscan_direct_dma ? ? ? ? ?2015438 ? 1086109
> ?pgscan_direct_dma32 ? ? ? ?55787823 ?36101597
> ?pgscan_direct_normal ? ? ? 0 ? ? ? ? 0
> ?pgscan_direct_movable ? ? ?0 ? ? ? ? 0
> ?pginodesteal ? ? ? ? ? ? ? 3461 ? ? ?7281
> ?slabs_scanned ? ? ? ? ? ? ?564864 ? ?527616
> ?kswapd_steal ? ? ? ? ? ? ? 2889797 ? 1448082
> ?kswapd_inodesteal ? ? ? ? ?14827 ? ? 14835
> ?pageoutrun ? ? ? ? ? ? ? ? 43459 ? ? 21562
> ?allocstall ? ? ? ? ? ? ? ? 9653 ? ? ?4032
> ?pgrotated ? ? ? ? ? ? ? ? ?384216 ? ?228631
> ?htlb_buddy_alloc_success ? 0 ? ? ? ? 0
> ?htlb_buddy_alloc_fail ? ? ?0 ? ? ? ? 0
> ?unevictable_pgs_culled ? ? 0 ? ? ? ? 0
> ?unevictable_pgs_scanned ? ?0 ? ? ? ? 0
> ?unevictable_pgs_rescued ? ?0 ? ? ? ? 0
> ?unevictable_pgs_mlocked ? ?4 ? ? ? ? 4
> ?unevictable_pgs_munlocked ?0 ? ? ? ? 0
> ?unevictable_pgs_cleared ? ?0 ? ? ? ? 0
> ?unevictable_pgs_stranded ? 0 ? ? ? ? 0
> ?unevictable_pgs_mlockfreed 0 ? ? ? ? 0
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to [email protected]. ?For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
>
On Tue, Jun 09, 2009 at 01:18:26AM +0800, Nai Xia wrote:
> On Mon, Jun 8, 2009 at 3:39 PM, Wu Fengguang<[email protected]> wrote:
> > On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote:
> >> One scenario that might be useful to test is what happens when some very large
> >> processes, all mapped and executable exceed memory and fight each other
> >> for the working set. Do you have regressions then compared to without
> >> the patches?
> >
> > I managed to carry out some stress tests for memory tight desktops.
> > The outcome is encouraging: clock time and major faults are reduced
> > by 50%, and pswpin numbers are reduced to ~1/3.
> >
> > Here is the test scenario.
> > - nfsroot gnome desktop with 512M physical memory
> > - run some programs, and switch between the existing windows after
> > starting each new program.
>
> I think this is a story of VM_EXEC pages fighting against other kind of pages,
> but as Andi said, did you test real regression case of VM_EXEC pages fighting
> against each other?
No. We'd better buy more memory if it's not enough for VM_EXEC pages :-)
Thanks,
Fengguang
> "
> One scenario that might be useful to test is what happens when some very large
> processes, all mapped and executable exceed memory and fight each other
> for the working set. Do you have regressions then compared to without
> the patches?
>
> -Andi
> "
>
> My experices with Compcache(http://code.google.com/p/compcache/) show that
> it also has similar improvement in similar case on LTSP
> (http://code.google.com/p/compcache/wiki/Performance).
> But it does has a non-trivial performance loss even when doing kernel
> compilation.
> I am not a little surprised when Andrew said it "There must be some cost
> somewhere".
>
> So you have found the spots where your patch doing great,
> make double sure it will not do something bad in all places,
> and that will be perfect. :-)
>
> >
> > The progress timing (seconds) is:
> >
> > before after programs
> > 0.02 0.02 N xeyes
> > 0.75 0.76 N firefox
> > 2.02 1.88 N nautilus
> > 3.36 3.17 N nautilus --browser
> > 5.26 4.89 N gthumb
> > 7.12 6.47 N gedit
> > 9.22 8.16 N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
> > 13.58 12.55 N xterm
> > 15.87 14.57 N mlterm
> > 18.63 17.06 N gnome-terminal
> > 21.16 18.90 N urxvt
> > 26.24 23.48 N gnome-system-monitor
> > 28.72 26.52 N gnome-help
> > 32.15 29.65 N gnome-dictionary
> > 39.66 36.12 N /usr/games/sol
> > 43.16 39.27 N /usr/games/gnometris
> > 48.65 42.56 N /usr/games/gnect
> > 53.31 47.03 N /usr/games/gtali
> > 58.60 52.05 N /usr/games/iagno
> > 65.77 55.42 N /usr/games/gnotravex
> > 70.76 61.47 N /usr/games/mahjongg
> > 76.15 67.11 N /usr/games/gnome-sudoku
> > 86.32 75.15 N /usr/games/glines
> > 92.21 79.70 N /usr/games/glchess
> > 103.79 88.48 N /usr/games/gnomine
> > 113.84 96.51 N /usr/games/gnotski
> > 124.40 102.19 N /usr/games/gnibbles
> > 137.41 114.93 N /usr/games/gnobots2
> > 155.53 125.02 N /usr/games/blackjack
> > 179.85 135.11 N /usr/games/same-gnome
> > 224.49 154.50 N /usr/bin/gnome-window-properties
> > 248.44 162.09 N /usr/bin/gnome-default-applications-properties
> > 282.62 173.29 N /usr/bin/gnome-at-properties
> > 323.72 188.21 N /usr/bin/gnome-typing-monitor
> > 363.99 199.93 N /usr/bin/gnome-at-visual
> > 394.21 206.95 N /usr/bin/gnome-sound-properties
> > 435.14 224.49 N /usr/bin/gnome-at-mobility
> > 463.05 234.11 N /usr/bin/gnome-keybinding-properties
> > 503.75 248.59 N /usr/bin/gnome-about-me
> > 554.00 276.27 N /usr/bin/gnome-display-properties
> > 615.48 304.39 N /usr/bin/gnome-network-preferences
> > 693.03 342.01 N /usr/bin/gnome-mouse-properties
> > 759.90 388.58 N /usr/bin/gnome-appearance-properties
> > 937.90 508.47 N /usr/bin/gnome-control-center
> > 1109.75 587.57 N /usr/bin/gnome-keyboard-properties
> > 1399.05 758.16 N : oocalc
> > 1524.64 830.03 N : oodraw
> > 1684.31 900.03 N : ooimpress
> > 1874.04 993.91 N : oomath
> > 2115.12 1081.89 N : ooweb
> > 2369.02 1161.99 N : oowriter
> >
> > Note that the oo* commands are actually commented out.
> >
> > The vmstat numbers are (some relevant ones are marked with *):
> >
> > before after
> > nr_free_pages 1293 3898
> > nr_inactive_anon 59956 53460
> > nr_active_anon 26815 30026
> > nr_inactive_file 2657 3218
> > nr_active_file 2019 2806
> > nr_unevictable 4 4
> > nr_mlock 4 4
> > nr_anon_pages 26706 27859
> > *nr_mapped 3542 4469
> > nr_file_pages 72232 67681
> > nr_dirty 1 0
> > nr_writeback 123 19
> > nr_slab_reclaimable 3375 3534
> > nr_slab_unreclaimable 11405 10665
> > nr_page_table_pages 8106 7864
> > nr_unstable 0 0
> > nr_bounce 0 0
> > *nr_vmscan_write 394776 230839
> > nr_writeback_temp 0 0
> > numa_hit 6843353 3318676
> > numa_miss 0 0
> > numa_foreign 0 0
> > numa_interleave 1719 1719
> > numa_local 6843353 3318676
> > numa_other 0 0
> > *pgpgin 5954683 2057175
> > *pgpgout 1578276 922744
> > *pswpin 1486615 512238
> > *pswpout 394568 230685
> > pgalloc_dma 277432 56602
> > pgalloc_dma32 6769477 3310348
> > pgalloc_normal 0 0
> > pgalloc_movable 0 0
> > pgfree 7048396 3371118
> > pgactivate 2036343 1471492
> > pgdeactivate 2189691 1612829
> > pgfault 3702176 3100702
> > *pgmajfault 452116 201343
> > pgrefill_dma 12185 7127
> > pgrefill_dma32 334384 653703
> > pgrefill_normal 0 0
> > pgrefill_movable 0 0
> > pgsteal_dma 74214 22179
> > pgsteal_dma32 3334164 1638029
> > pgsteal_normal 0 0
> > pgsteal_movable 0 0
> > pgscan_kswapd_dma 1081421 1216199
> > pgscan_kswapd_dma32 58979118 46002810
> > pgscan_kswapd_normal 0 0
> > pgscan_kswapd_movable 0 0
> > pgscan_direct_dma 2015438 1086109
> > pgscan_direct_dma32 55787823 36101597
> > pgscan_direct_normal 0 0
> > pgscan_direct_movable 0 0
> > pginodesteal 3461 7281
> > slabs_scanned 564864 527616
> > kswapd_steal 2889797 1448082
> > kswapd_inodesteal 14827 14835
> > pageoutrun 43459 21562
> > allocstall 9653 4032
> > pgrotated 384216 228631
> > htlb_buddy_alloc_success 0 0
> > htlb_buddy_alloc_fail 0 0
> > unevictable_pgs_culled 0 0
> > unevictable_pgs_scanned 0 0
> > unevictable_pgs_rescued 0 0
> > unevictable_pgs_mlocked 4 4
> > unevictable_pgs_munlocked 0 0
> > unevictable_pgs_cleared 0 0
> > unevictable_pgs_stranded 0 0
> > unevictable_pgs_mlockfreed 0 0
> >
> > --
> > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > the body to [email protected]. For more info on Linux MM,
> > see: http://www.linux-mm.org/ .
> > Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
> >