posix_fadvise (WILLNEED) замедляет ввод-вывод?

На машине CentOS 5.5 с ядром Linux версии 2.6.18-194.26.1.el5 я заметил, что posix_fadvise (WILLNEED) делает чтение файлов размером 60K намного медленнее, чем обычный ввод-вывод почти на 200%.

Похоже, что фактический вызов fadvise является синхронным, а также задерживает планирование других потоков в приложении, которые используют данные, считываемые из файлов.

Возможно ли, что ядро ​​занято выборкой данных с дисков из-за причудливого звонка, и в итоге откладывает выполнение другой запланированной задачи? Похоже, это противоречит ожидаемому поведению асинхронной предварительной выборки, которое мы ожидаем от вызова fadvise.

Мой вопрос: есть ли какие-либо настраиваемые параметры ядра, которые можно использовать для обеспечения асинхронного поведения для posix_fadvise (WILLNEED)? Как увеличение потоков ввода-вывода ядра, кеша страниц?

6
задан Specksynder 8 February 2011 в 17:56
поделиться