[MLton] Paging under RedHat 9.0 although largely fitting in core (resend)

Alain Deutsch deutsch@PolySpace.com
Tue, 09 Mar 2004 17:09:37 +0100


We have noticed the following performance problem under RedHat 9.0: 
there are situations where paging seemingly occurs under RedHat 9.0 
although the MLton-generated executable completely resides in core. In 
the following instance, I have set ramslop to a low 0.75, and despite 
this and the fact that memory is largely unoccupied, the % of CPU use is 
closer to 50% than to 90%, as I would expect.

Enclosed is a top snapshot: we can see that:

   1. the MLton-generated executable, iabc-c2if.*, only uses 44% of the CPU
   2. its size, 762Mb, is much less than the total RAM size (1Gb)
   3. the core is largely free besides the MLton-generated executable
   4. kswapd is active and eats up 25% of CPU time

I was wondering:

   1. if this is due to RedHat 9.0
   2. if so, whether the use of madvise() calls from the gc could ease
      up the situation (perhaps by using WONTNEED on old from spaces ?)
   3. if there may be RedHat 9.0 kernel and/or swapd setting to avoid
      this behavior.

Thanks.

 10:43:30  up 18 days, 20:42,  2 users,  load average: 2.27, 2.14, 1.89
53 processes: 49 sleeping, 4 running, 0 zombie, 0 stopped
CPU states:  23.2% user  75.6% system   0.0% nice   0.0% iowait   1.0% idle
Mem:  1030404k av, 1020248k used,   10156k free,       0k shrd,    5288k 
buff
                    850308k actv,   50612k in_d,   20932k in_c
Swap: 3849912k av,  694424k used, 3155488k free                  168992k 
cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
  881 deutsch   18   0  762M 751M  1404 R    44.8 74.6  15:18   0 
iabc-c2if.cx86-
    5 root      16   0     0    0     0 RW   25.9  0.0  52:12   0 kswapd
 1019 deutsch   16   0  1252 1252   928 R     6.4  0.1   0:06   0 top
   15 root      16   0     0    0     0 DW    6.3  0.0   4:31   0 kjournald
32173 deutsch   15   0   528  232   124 S     1.4  0.0   0:02   0 sshd
  966 deutsch   15   0  1880 1712  1484 S     1.0  0.1   0:00   0 sshd
 1027 deutsch   16   0   560  560   476 S     0.5  0.0   0:00   0 tail
    2 root      15   0     0    0     0 RW    0.1  0.0   0:11   0 keventd
    1 root      15   0    88   60    40 S     0.0  0.0   0:06   0 init
    3 root      15   0     0    0     0 SW    0.0  0.0   0:01   0 kapmd
    4 root      34  19     0    0     0 SWN   0.0  0.0   0:00   0 
ksoftirqd_CPU0
    9 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 bdflush
    6 root      15   0     0    0     0 SW    0.0  0.0   0:03   0 kscand/DMA
    7 root      16   0     0    0     0 SW    0.0  0.0  55:11   0 
kscand/Normal
    8 root      15   0     0    0     0 SW    0.0  0.0   5:32   0 
kscand/HighMem
   10 root      15   0     0    0     0 SW    0.0  0.0   0:02   0 kupdated
   11 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 
mdrecoveryd
   72 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 khubd
 3690 root      15   0   212  164   112 S     0.0  0.0   0:03   0 syslogd
 3695 root      15   0    52    4     0 S     0.0  0.0   0:00   0 klogd
 3721 daemon    15   0   272  248   184 S     0.0  0.0   0:36   0 portmap
 3799 root      15   0     0    0     0 SW    0.0  0.0   0:17   0 rpciod
 3800 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 lockd
 3812 root      24   0    52    4     0 S     0.0  0.0   0:00   0 apmd
 3828 root      25   0   304  260   188 S     0.0  0.0   0:02   0 ypbind
 3910 root      15   0   280  216   196 S     0.0  0.0   0:00   0 automount
 3912 root      15   0   112   48    28 S     0.0  0.0   0:00   0 automount
 3928 root      15   0   352  112   108 S     0.0  0.0   0:14   0 sshd
 3942 root      24   0   128    4     0 S     0.0  0.0   0:00   0 xinetd
 3981 root      16   0 13064    4     0 S     0.0  0.0   0:00   0 spamd
 3990 root      15   0    48    4     0 S     0.0  0.0   0:00   0 gpm
 4000 bin       15   0   460   40    12 S     0.0  0.0   0:00   0 
cannaserver
 4011 root      15   0   176  132    88 S     0.0  0.0   0:03   0 crond
 4022 root      15   0  1748  260   224 S     0.0  0.0   0:07   0 cupsd
 4067 root      25   0  3356    4     0 S     0.0  0.0   0:00   0 jserver
 4144 xfs       15   0  4048   44    24 S     0.0  0.0   0:00   0 xfs
 4179 root      23   0    48    4     0 S     0.0  0.0   0:00   0 mingetty
 4180 root      23   0    44    4     0 S     0.0  0.0   0:00   0 mingetty
 4181 root      23   0    44    4     0 S     0.0  0.0   0:00   0 mingetty
 4182 root      23   0    44    4     0 S     0.0  0.0   0:00   0 mingetty
 4183 root      20   0    44    4     0 S     0.0  0.0   0:00   0 mingetty
 4184 root      20   0    44    4     0 S     0.0  0.0   0:00   0 mingetty
32171 root      21   0   364    0     0 SW    0.0  0.0   0:00   0 sshd
32174 deutsch   15   0   788  640   432 S     0.0  0.0   0:00   0 bash
  447 deutsch   15   0    60    8     0 S     0.0  0.0   0:00   0 
rte-kernel.x86-
  474 deutsch   15   0   260    8     0 S     0.0  0.0   0:00   0 
rte-kernel2
  548 deutsch   15   0    76   60    28 S     0.0  0.0   0:00   0 tee
  783 deutsch   15   0   132    4     0 S     0.0  0.0   0:00   0 rte-suif
  877 deutsch   15   0    44    4     0 S     0.0  0.0   0:00   0 
rte-time.x86-li
  964 root      20   0  1640 1432  1276 S     0.0  0.1   0:00   0 sshd
  967 deutsch   16   0  1516 1472  1180 S     0.0  0.1   0:00   0 bash

-- 
Alain Deutsch, CTO              
PolySpace Technologies         
mailto:deutsch@POLYSPACE.COM    http://www.polyspace.com