Why is my kernel (Mageia 1's 2.6.38.8-server-10.mga) _NOT_
writing out dirty blocks to disk?
Yesterday, the contents of a number of files were lost when I
crashed the machine in a failed experiment with SCSI rescan to
remove a hot-unplugged ESATA disk. (Rebuilding the software
RAID10s is another story...) Today, recompiling WINE left 860MB
of dirty blocks needing to be written to disk, according to
/proc/meminfo. After the compilation finished, I waited over 90
seconds, with the system essentially completely idle, and the
amount of dirty data did not go down. Then, when I did a 'sync'
(as a non-root user), immediately everything flushed out to disk
in about 10-15 seconds time and the amount of dirty data went to
zero. (I had "vmstat 3" and xcpustate running, along with a
periodic manual "grep Dirty /proc/meminfo".)
There is a value of 3000 in /proc/sys/vm/dirty_expire_centisecs,
which accoring to this page (and others I have read)
http://www.westnet.com/~gsmith/content/linux-pdflush.htm
means that the kernel's helper processes _should_ get busy and
start to write out any dirty blocks at _MOST_ 30 seconds after
said blocks went dirty. Even approx. 90 seconds after the
compilation job had finished, nothing was getting written. Based
on yesterday's experience, nothing would have been written even
many minutes later.
What gives? Why are my kernel and its helper processes being so
lazy?
Thanks.
--
Robert Riches
spamt...@jacob21819.net
(Yes, that is one of my email addresses.)