Trigger a stream only with low I / O load

I have a background thread that performs I / O (keeping the index up to date). But in addition to this, several clients get access to the server hard drive, and I want these calls to be as fast as possible. So I thought it would be nice if the indexing thread only works with low I / O load.

Is there any way to figure this out?

I am also open to alternative offers.

+3
source share
2 answers

Use performance counters to get disk I / O activity. Once it reaches the lower limit of your threshold, let your threads work. Remember to take into account your own I / O load, which you will add when deciding what your high-end is for the stop threshold.

+7
source

Prioritizing your threads to idle should be sufficient.


Edit

You are right that the priority of a stream does not affect the priority of I / O.
See Windows Vista I / O Priority for a detailed explanation.

+5
source

Source: https://habr.com/ru/post/1707859/


All Articles