Кеш диска SCSI
У меня есть контроллер SCSI (HP Smart Array 642), использующий драйвер cciss в Linux, который подключен к нескольким дискам SCSI. Я пытаюсь оптимизировать связь между этими устройствами и дошел до того, что мне следует проверить, насколько заполнен кэш каждого диска.
Можно ли получить это значение с диска? Или, возможно, можно получить это значение из контроллера?
ps Хочу заметить, что, поскольку диски находятся за контроллером, я не могу использовать, например, hdparm.
2 ответа
Вы могли бы frig с прошивкой на дисках напрямую. scsirastools позволит вам выдавать команды режима в дисках, чтобы изменить их конфигурацию. Если вы хотите поэкспериментировать с дисками, обратите внимание на параметры сегментации кеша и политики предварительной выборки на стр. 8, чтобы начать работу.
Я не знаю, будет ли поддержка scsirastools проходить через ваш RAID-контроллер. Если этого не произойдет, вам, возможно, придется отключить старый Ebay контроллер Adaptec 39320 или аналогичный и использовать его для работы со страницами режима. YMMV.
Во время исследования ограничение буфера для этого контроллера было обнаружено в драйвере Linux (cciss):
MAX_KMALLOC_SIZE (4096 * 512)
Это означает, что для получения максимальной скорости нам нужно постоянно помещать информацию об отправке в этот буфер размером 2 МБ. Итак, похоже, что это не кеш контроллера, а какое-то важное значение, влияющее на скорость процесса отправки.
Если мы говорим о командах Data-Out, в которые нам нужно постоянно включать буфер, неплохо проверить параметр длины передачи , который влияет на размер буфера. Конечно, не забывайте о количестве дисков , потому что это распределение памяти относится к контроллеру.
В противном случае ограничением в этой ситуации является скорость диска, но, конечно, это зависит от контроллера, дисков, шин и множества других параметров.