Carlos E. R. wrote:
I don't think it is that. It could be that the filesystem metadata is not written, perhaps the journal. It makes no sense not to write all the data as it gets it.
Maybe the metadata is not written till, say, 5 seconds of no activity, or till it can not be delayed longer.
The write the journal whenever it gets something to write -- XFS journal only journals metadata -- and they can't change the meta data on disk until the journal has sync w/the disk or they risk fs corruption. A data stream to disk -- one continuous stream waits /proc/sys/fs/xfs/filestream_centisecs ^^ that long (on my system, it's 3000 of 'em, so 30 seconds. The file system should be synced every 30 seconds as well from: xfssyncd_centisecs in the same dir.
* the cache does not grow endlessly to full RAM
---- If you don't want to use the cache then don't. It is doing what you told it to do -- you could write O_DIRECT and the cache wouldn't grow due to your program at all. But if you keep writing to the cache, it will mark those buffers as containing **COPIES** of what is on disk -- so if something asks for them it can return the info from memory. But 30 seconds is the longest it should normally wait to write out data. It can be set higher -- if you are on a laptop, 60-120 seconds isn't bad... be sure to have a full charge on your battery though.
But this is what the Linux cache does by design :-)
* the flush, when it happens, does not take too long.
--- It takes -- he said less than 120ms/call. It's not flushing to disk every half hour.
Normal Linux is not a Real Time Operating System by default, unless you change some options in the kernel and add some utilities. Maybe what you need is that.
---- It sounded like he was on a not too fast computer that might bog down if it had to scan 10G all at once -- might even take 5 seconds!
A suggestion on the XFS list is that I may need to tweak some variables, as suggested by Lars Müller and others earlier in the thread. I just have not figured them out to know what to change. I am working on that...
--- Oi...It's NOT going to be changed by tweaking XFS vars. XFS isn't what is holding it in memory. It's the kernel. Linux is saving up scanning for more memory for all at once, as it is more efficient that way. You can play with values in /proc/sys -- but it will all be a kludge, as what you really need is to avoid the cache altogether. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org