Su una macchina CentOS 5.5 su cui gira il kernel Linux versione 2.6.18-194.26.1.el5, ho notato che posix_fadvise (WILLNEED) rende la lettura di file 60K molto più lenta di un IO regolare di quasi il 200%.posix_fadvise (WILLNEED) rende l'IO più lento?
Sembra che la chiamata fadvise effettiva sia sincrona e ritarda anche la pianificazione di altri thread nell'applicazione che utilizzano i dati letti dai file.
È possibile che il kernel sia impegnato con il recupero dei dati dai dischi a causa della chiamata fadvise e finisca per ritardare altre attività pianificate? Sembra contrario al previsto comportamento di precaricamento asincrono che ci aspettiamo da una chiamata fadvise.
La mia domanda è: ci sono parametri del kernel regolabili che potrebbero essere utilizzati per applicare il comportamento asincrono per posix_fadvise (WILLNEED)? Come aumentare i thread IO del kernel, la cache della pagina?
Grazie per la risposta. La risposta fornita nel collegamento allude al numero di richieste di I/O che vengono servite nel kernel. È un numero configurabile? Se il sistema ha molte risorse, l'aumento di questa coda potrebbe aiutare a ridurre l'effetto del comportamento sincrono ... – Specksynder
['nr_requests' per coda, quindi è possibile sintonizzarlo] (https://www.kernel.org/doc/Documentation /block/queue-sysfs.txt). Non sono sicuro di cosa sia inizializzato da. – sourcejedi