Neo - high load average after 1 -2 days on?

Martin Guy martinwguy at yahoo.it
Thu May 1 14:49:58 CEST 2008


On 5/1/08, Torfinn Ingolfsen <tingox at gmail.com> wrote:
> Ok, I'm having that trouble again.

>  Unknown HZ value! (94) Assume 100.
I get that when running ARM systems under QEMU but haven't tracked it down.
It may be related to the fact that these systems lost wallclock time
at a rate of many minutes per day.

>  Mem:    126260k total,   124816k used,     1444k free,       32k buffers
>  Swap:        0k total,        0k used,        0k free,    22508k cached
>
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>   1227 root      19  -1 33760  26m   80 D 17.1 21.1  73:17.70 Xfbdev
>   1284 root      20   0 50120  35m  120 R 14.5 28.5 149:58.25 tangogps
>   1095 haldaemo  20   0 16544  12m  204 D 14.0 10.4  47:31.03 hald
>  Hmm, don't know what to think.


The requirement for RAM exceeds the available physical RAM
VIRT is the memory space they think they have; RSS is the physical RAM
they are actually allocated at the moment. The difference is made up
of data memory pages that have been allocated to them but that they
have never used (which read as all-zero without needing to allocate a
physical page of memory until written to), and it deallocates text
memory pages (program code loaded from executable files) that it
thinks have not been used recently, and reloads them from flash when
they are next used.

So it's probably spending all its time reloading program code from
flash, running a couple of steps, hitting another unloaded code page,
changing to a different process while that loads, hitting another
unloaded code page etc etc, a situation known as "thrashing". The
miracle is that is keeps running at all! :)

You can improve the situation by configuring some swap space, which
will allow it to stash data memory pages that are not being used onto
disk (flash card)

To do this without repartitioning the flash card, you can go:
# dd if=/dev/zero of=/swapfile bs=1M count=32
# mkswap /media/card/swapfile
# swapon /media/card/swapfile

and if you want this to be configured automatically at boot time, add
       /media/card/swapfile none swap default 0 0
to /etc/fstab

Your neo will breathe a sigh of relief.

Keep checking "vmstat" output occasionally. If you then find that "si
so" columns are constantly non-zero, this means that, even with the
breathing space provided by swapping dead data, it is still thrashing,
and if this situation persists, that region of your flash card will
wear out within a few months. Under normal system load, the swap
region will take 3 or 4 years to wear out; some people like to prevent
this by moving the swap area around periodically by creating a new
swapfile then deleting the old every few months.

   M

Sorry for 2 copies, Torfinn, I forgot to cc the list.



More information about the device-owners mailing list