Wir schreiben eine hoch gleichzeitige Software in C++ für einige Hosts, die alle mit einem einzelnen ST9500620NS als Systemlaufwerk und einer Intel P3700 NVMe Gen3 PCIe SSD-Karte für Daten ausgestattet sind. Der Versuch, das System mehr zur Abstimmung unserer Software zu verstehen, grub ich um das System (zwei E5-2620 v2 @ 2.10GHz CPUs, 32 GB RAM, läuft CentOS 7.0) und war überrascht zu entdecken folgendes:Auswählen des richtigen Linux I/O-Schedulers für einen mit NVMe SSD ausgestatteten Host?
[[email protected] ~]# cat /sys/block/nvme0n1/queue/scheduler
none
Diese widerspricht allem, was ich über die Auswahl des richtigen Linux I/O-Schedulers gelernt habe, z. B. von the official doc on kernel.org.
Ich verstehe, dass NVMe ein neues Kind auf dem Block ist, so für jetzt werde ich nicht die vorhandenen Scheduler-Einstellung berühren. Aber ich fühle mich wirklich seltsam wegen der "None", die der Installateur eingebaut hat. Wenn jemand Hinweise darauf hat, wo ich weitere Informationen finden oder Ihre Erkenntnisse weitergeben kann, wäre ich Ihnen dankbar. Ich habe viele Stunden damit verbracht, zu googeln, ohne etwas Konkretes zu finden.
logisch, ich habe was du gesagt hast. Vielleicht hätte ich mich deutlicher machen sollen - ich habe diese Option nirgends "nirgendwo" gesehen. Muss ich in den Kernel-Code eindringen, um ihn zu finden, oder ist er irgendwo dokumentiert? – user183394
In der Tat, ich wurde so neugierig, dass ich die gesamte 'linux-3.18.1.tar.xz' auf meine Maschine heruntergeladen habe,' unart' die Quelle 'zx'-ed tear ball und ging in' linux-3.18.1/block', hat ein 'grep -i none' gemacht und auch das' noop-iosched.c' überprüft. Nirgends sah ich diesen Optionsnamen 'none'. Jetzt bin ich noch mehr verwirrt, warum der Installer von CentOS Anaconda diesen scheinbar undokumentierten Namen verwendet hat. Hey, Red Hat Leute? – user183394
Meine Loop-Back-Geräte zeigen 'cat/sys/block/loop */queue/scheduler' als' none' an. Sind Sie sicher, dass Ihr Gerät erkannt, verbunden, formatiert und/oder mit einem Dateisystemtyp (ext {3,4}, btrfs) gemountet ist. Aus diesem Artikel [Tuning-i/o-Scheduler für ssds] (http://dev.nuodb.com/techblog/tuning-linux-io-scheduler-ssds) sollten jedoch alle Standard-Scheduler und eine ausgewählte Scheduler angezeigt werden. Zumindest sollte es Ihnen eine Option geben, die einen anderen Scheduler für Testzwecke verwendet? – askb