Ilyen elevator az ún. "deadline", amely megpróbálja minimalizálni a "seek"-eket, miközben gondoskodik arról, hogy ne várakozzon kérés tovább, mint egy megadott időperiódus. Az "anticipatory" scheduler megáll azután, hogy befejezte az olvasási műveletet, feltételezve, hogy egy másik közeli olvasási kérés felbukkan hamarosan. Aztán itt CFQ ("completely fair queueing") ütemező, amelyik megpróbálja egyenlő részre felosztani a rendelkezésre álló I/O sávszélességet a processzek között. Vagy a "noop" ütemező, amely elsősorban olyan eszközökhöz készült (memória-alapú eszközök) amelyek nem igazán profitálnak az előzőekben felsorolt ütemező logikákból.Ez szép, csak egyetlen gond volt eddig. Az adminisztrátornak nem volt lehetősége könnyen váltogatni az I/O ütemezők között. A rendszer I/O ütemező úgy lett tervezve, hogy boot időben az "elevator=X" paraméterrel meg lehet "kérni" a kernelt, hogy melyik schedulert használja. Ezzel egy baj van, hogy a választás az összes meghajtóra vonatkozik, és a későbbiekben nem lehet megváltoztatni (csak újraindítással). Ez a megkötés nehézkessé teszi a különböző ütemezők különböző terhelések alatti vizsgálatát, és nem teszi lehetővé, hogy különböző meghajtókhoz különböző ütemezőt használjunk.
Ezért Nick Piggin kiadott egy patchet, amely lehetővé teszi az I/O scheduler futásidőben történő módosítását. A patch segítségével a /sys/block/*/queue alatt található új "io_scheduler" sysfs attribútumon keresztül lehet az ütemezőt változtatni. A változtatáshoz egyszerűen bele kell írni az ütemező nevét az atrribútumba. Például, ha a CFQ-t akarjuk beállítani az első SCSI meghajtóra, akkor az így néz ki:
- echo cfq >/sys/block/sda/queue/io_scheduler
A használható értékek: as, deadline, noop, cfq. Az ütemező váltáshoz időre van szükség (meg kell állítani és ki kell üríteni az I/O várakozási sort), így nem egészséges dolog mondjuk CD írás közepén I/O ütemezőt váltani. Viszont hasznos lehet mondjuk a rendszer tesztelésére különböző terhelések alatt, vagy különböző meghajtók különböző logika szerinti vezérléséhez.
Nick levele itt.
- A hozzászóláshoz be kell jelentkezni
- 2877 megtekintés