I can't answer all your questions, but here is what I can answer:

On Saturday 03 May 2014 08:16:24 Chris Stankevitz wrote:
> Hello,
> 
> I have a small system:
> 
> - 6GB drive
> 
> - ext4 partition mounted readonly
> 
> - swap partition that is not listed in fstab and not enabled.  (I will
> swapon it every few weeks or so if I need it for a large compile job)
> 
> - 2 GB RAM
> 
> When the system boots it processing video from a USB camera.  The
> program dynamically allocates and releases memory while it runs, but
> stores no data in memory or on disk (read-only).  The memory usage
> does not grow over time.
> 
> When things are going well, top looks like so:
> 
> ===
> 
> Tasks:  68 total,   1 running,  67 sleeping,   0 stopped,   0 zombie
> %Cpu0  : 88.3 us, 11.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si, 
> 0.0 st %Cpu1  : 25.5 us,  2.3 sy,  0.0 ni, 72.1 id,  0.0 wa,  0.0 hi,  0.0
> si,  0.0 st %Cpu2  :  6.0 us,  0.7 sy,  0.0 ni, 93.3 id,  0.0 wa,  0.0 hi,
>  0.0 si,  0.0 st %Cpu3  : 25.7 us,  2.3 sy,  0.0 ni, 72.0 id,  0.0 wa, 
> 0.0 hi,  0.0 si,  0.0 st KiB Mem:   1861644 total,   161648 used,  1699996
> free,     6948 buffers KiB Swap:        0 total,        0 used,        0
> free,    57728 cached
> 
>   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
>  2129 root      20   0 1774440  81712  25388 S 160.0  4.4  25:55.46 obt
>   705 root      20   0       0      0      0 S   1.0  0.0   0:07.87 kswapd0
>  2049 ueyed     20   0  620472  14092  13652 S   1.0  0.8   0:09.34
> ueyeusbd
> 
> 
> ====
> 
> 
> Q1: Why does the kswapd0 process from time to time take up 100% CPU?

I can't answer this, other than say that something is using up your memory and 
the kernel is processing heavily (assessing) the number of free pages in the 
system to see if they are getting too low and therefore it should start 
swapping pages out into your swap partition.  It runs on a timer, so it will 
check this every now and then and therefore you will find it fluctuates over 
time.


> Q2: Why does top show "cached swap" eventhough I do not have swap mounted?

It doesn't, although if you read that row from left to right you would assume 
that the cached number shown there is swapped cache.

It is actually referring to data in your memory cache.  If someone was to pull 
the plug then all this data in RAM would be lost.  If you run:

  cat /proc/meminfo

you will see that there are two entries there, 'Cached' which corresponds to 
your cached value in Top and also 'SwapCached' which refers to the amount of 
data that was swapped out and has now been swapped back in memory, but it is 
still kept in the swapfile in case it needs to be swapped out again soon (it 
tries to save I/O operations from the filesystem).


> Q3: Is there anything I can do to prevent kswapd0 from using CPU on my
> system?  e.g. disable SWAP in the kernel config

Well, I guess that if you have disabled swap in the kernel the kernel daemon 
will not be available whenever you run that kernel.


> I suspect the answer to Q1 is:
> 
> a) kernel is not configured properly for my hardware
>  or
> b) there is some bad side effect to my readonly root fs

I have found reports and allegations of a kernel bug with kswapd in Google, 
but I don't know if this is related to your problem.

-- 
Regards,
Mick

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to