ionice does not have any effect on un-synced writes (i.e. normal writes)?

When I dump a large MySQL database (its dump weighs around 10GB)
– it appears on the disk almost immediately, but then, later, when the kernel
decides to flush it to the disk, the server almost stalls and other IO requests
take a lot more time to complete even though mysqldump is run with ionice -c3,
so the use of ionice has no real effect.

Artem

When you write data into the page cache, there is no field to store the IO priority. So ionice will have no effect. Do I have that right?

My latest kernel version is 4.18.16-200.fc28.x86_64.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Yes.

In theory, ionice allows you to prioritize a command’s IO the way that nice(1) theoretically prioritizes its CPU usage. This would be a handy way to allow, say, a big but relatively important compile to grind away in the background without getting in the way of your interactive use of the machine.

(Why yes, I do recompile Firefox from source every so often.)
[…]
The next problem is that even when running directly on a disk, ionice does nothing to de-prioritize asynchronous write IO. This is, well, most of the write IO that most programs will do. Ionice may slow down synchronous writes (I don’t have a test program) and it definitely works for reads, but that’s it.

https://utcc.utoronto.ca/~cks/space/blog/linux/IoniceNotes


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x