Запускать поток только при низкой нагрузке ввода / вывода - PullRequest
3 голосов
/ 07 мая 2009

У меня есть фоновый поток, который выполняет операции ввода-вывода (поддерживая актуальность индекса). Но в дополнение к этому несколько клиентов получают доступ к жесткому диску сервера, и я хочу, чтобы эти обращения были как можно быстрее. Поэтому я подумал, что было бы неплохо, если бы поток индексирования работал только при низкой нагрузке ввода-вывода.

Есть ли способ выяснить это?

Я также открыт для альтернативных предложений.

Ответы [ 2 ]

7 голосов
/ 07 мая 2009

Используйте счетчики производительности для получения активности ввода-вывода дисков. Как только он достигнет нижнего предела вашего порога, позвольте вашим потокам работать. Не забудьте учесть собственную нагрузку ввода-вывода, которую вы добавите, когда решаете, какой у вас верхний предел для порога остановки.

5 голосов
/ 07 мая 2009

Достаточно установить приоритет потоков для простоя.


Редактировать

Вы правы в том, что приоритет потока не влияет на приоритет ввода-вывода.
Посмотрите на Приоритет ввода / вывода в Windows Vista для подробного объяснения.

...