Cache der SCSI-Platte

462
Rufi

Ich habe einen SCSI-Controller (HP Smart Array 642), der den cciss-Treiber unter Linux verwendet, der an mehrere SCSI-Festplatten angeschlossen ist. Ich versuche die Kommunikation zwischen diesen Geräten zu optimieren und kam zu dem Ort, dass ich prüfen sollte, wie voll der Cache jeder Platte ist.

Ist es möglich, diesen Wert von der Festplatte abzurufen? Oder ist es möglich, diesen Wert vom Controller zu erhalten?

ps Beachten Sie, dass hdparm beispielsweise nicht verwendet werden kann, weil sich die Festplatten hinter dem Controller befinden.

2
Linux kann und sollte sich nicht darum kümmern, was die Spezifikationen der Festplatten hinter dem Array sind. Es liegt am Array Controller, die Dinge zu optimieren. Sie sollten nicht versuchen, direkt mit den Festplatten herumzuspielen, da dies den Controller umgehen und das Array möglicherweise zerstören würde. vor 11 Jahren 2
Das mache ich gerade: Ich kommuniziere mit den Festplatten über SCSI-Pass-Through-Befehle und das Array interessiert mich nicht. vor 11 Jahren 1

2 Antworten auf die Frage

1
ConcernedOfTunbridgeWells

You could frig with the firmware on the drives directly. scsirastools will let you issue mode page commands to the drives to modify their configuration. If you want to experiment with the drives take a look at the cache segmentation parameters and pre-fetch policies on Mode page 8 as a place to start.

I don't know if scsirastools will support pass through on your RAID controller. If it doesn't you might have to get an old adaptec 39320 or similar controller off Ebay and use that to fiddle with the mode pages. YMMV.

Wenn wir jedoch von Pass-Through-Befehlen sprechen, wird es für einen anderen RAID-Controller völlig anders sein. Rufi vor 11 Jahren 0
0
Rufi

Während der Untersuchung wurde die Pufferbegrenzung für diesen Controller im Linux-Treiber (cciss) gefunden:

MAX_KMALLOC_SIZE (4096 × 512)

Das heißt, um die höchste Geschwindigkeit zu erreichen, müssen wir die gesendeten Informationen ständig in diesen 2-MB-Puffer einfügen. Es scheint also kein Cache des Controllers zu sein, sondern einige wichtige Werte, die die Geschwindigkeit des Sendevorgangs beeinflussen.

Wenn wir über Data-Out-Befehle sprechen, bei denen ständig Puffer eingefügt werden müssen, ist es eine gute Idee, den Parameter für die Übertragungslänge zu überprüfen, der die Puffergröße beeinflusst. Vergessen Sie natürlich nicht die Anzahl der Festplatten, da sich dieser Zuordnungsspeicher auf den Controller bezieht.

Ansonsten besteht die Einschränkung in dieser Situation in der Geschwindigkeit der Festplatte, die natürlich von Controller, Festplatten, Bussen und vielen anderen Parametern abhängt.