Alexey Kopytov LKML-re postázott benchmark-jában megállapította, hogy a 2.6-os Linux kernelben jelentős visszafejlődés tapasztalható a random file I/O-ban. Mivel a random file hozzáférés elsősorban az apró file műveleteket jelenti (random I/O = kis fileok ``összecsipegetése'' a merevlemez terület elszórt részeiről, tipikusan adatbázis műveletek, szekvenciális I/O = egybefüggő, nagy fileok kezelése , tipikusan streaming video, audio, stb.), ezért elsősorban az adatbázisokat futtató felhasználók érzik meg ennek negatív hatását.
Alexey ezért olyan méréseket végzett, amely nagy terhelésű adatbázis-kezelést szimulálnak. A tesztek során megvizsgálta az összes szóba jöhető I/O ütemezőt, beleértve az anticipatory, deadline és a CFQ schedulert, és arra az eredményre jutott, hogy az összes esetben jobban teljesít a 2.4-es kernel, mint a 2.6-os (több, mint kétszer volt gyorsabb a 2.4).A hiba feltárásban Andrew Morton a 2.6-os kernel karbantartója és Nick Piggin az anticipatory I/O ütemező szerzője arra a következtetésre jutottak, hogy a regressziót valószínűleg a előreolvasási (readahead) cache nem megfelelő működése okozza (a random I/O-nál nagy szerepe van a megfelelő cache-elésnek, hiszen minél több adatot gyorsítótárazunk, annál kevesebb merevlemez műveletet kell végezni. Az apró fileok összeszedegetése rendkívűl sok merevlemez fej pozícionálással jár, amely nagyon időigényes feladat).
Andrew szerint a readahead logika egyre komplexebb, és állandóan csak foltozva van. Azt javasolta, hogy vessék el a jelenlegi megoldást, és gondolják újra azt. Végül a probléma okát Ram Pai találta meg. A probléma az volt, hogy több thread is ugyanazon fileleíróhoz (file descriptor) akart egy időben hozzáférni. Andrew egyetértett vele, és el is készített egy gyors patchet.
A teszt eredmények azt mutatják, hogy valóban ez volt a probléma. A patchelés után Andrew-nek ext2 filerendszeren AS ütemezővel jobb eredmények születtek a 2.6-os kernellel, mint a 2.4-gyel. Adatbázis embereknek mindenképpen érdemes majd kernelt frissíteni!
A thread itt kezdődik.