I'm trying to figure out why is kjournald
going crazy on my machine. It's an 8-core box with loads of memory. It's got ~50% cpu load.
The iotop doesn't seem to point at any specific processes – some bursts of writes here and there (mostly cron starting, some monitoring stats generated, etc.) When I used sys/vm/block_dump
to gather the write statistics, I got lists like this:
kjournald(1352): 1909
sendmail(28934): 13
cron(28910): 12
cron(28912): 11
munin-node(29015): 3
cron(28913): 3
check_asterisk_(28917): 3
sh(28917): 2
munin-node(29022): 2
munin-node(29021): 2
Where kjournald
actions are just WRITEs.
Why is that happening? What else should I look at to limit the kjournald activity a bit? It seems disproportionate to what's actually being written.
Best Answer
kjournald
is responsible for the journal of ext3 (journaling filesystem). It's known to use a lot of CPU under certain loads. There's not much to do except use another filesystem or disable journaling (effectively making the fs ext2).Theoretically you can use one of the other modes of ext3 journaling and check if the CPU usage goes down, but remember that each method is a compromise on the safety of the data being written to the disk. You have ordered mode, writeback mode and 'everything' mode.
You set the mode using the option
data=
when mounting the system, likedata=ordered
.