2

У меня есть контроллер SCSI (HP Smart Array 642), использующий драйвер cciss в Linux, который подключен к нескольким дискам SCSI. Я пытаюсь оптимизировать связь между этими устройствами и дошел до того, что мне следует проверить, насколько заполнен кэш каждого диска.

Можно ли получить это значение с диска? Или, возможно, можно получить это значение из контроллера?

п.с. Хочу заметить, что поскольку диски находятся за контроллером, я не могу использовать, например, hdparm.

2 ответа2

1

Вы могли бы frig с прошивкой на дисках напрямую. scsirastools позволит вам выдавать команды режима в дисках, чтобы изменить их конфигурацию. Если вы хотите поэкспериментировать с дисками, обратите внимание на параметры сегментации кеша и политики предварительной выборки на стр. 8, чтобы начать работу.

Я не знаю, будет ли поддержка scsirastools проходить через ваш RAID-контроллер. Если этого не произойдет, вам, возможно, придется получить старый контроллер Adaptec 39320 или аналогичный от Ebay и использовать его для работы со страницами режима. YMMV.

0

Во время исследования было обнаружено ограничение буфера для этого контроллера в драйвере Linux (cciss):

MAX_KMALLOC_SIZE(4096 * 512)

Это означает, что для получения максимальной скорости нам нужно постоянно помещать информацию об отправке в этот буфер размером 2 МБ. Итак, похоже, что это не кеш контроллера, а какое-то важное значение, влияющее на скорость процесса отправки.

Если мы говорим о командах Data-Out, в которые нам нужно постоянно включать буфер, неплохо проверить параметр длины передачи, который влияет на размер буфера. Конечно, не забывайте о количестве дисков, потому что это распределение памяти относится к контроллеру.

В противном случае ограничением в этой ситуации является скорость диска, но, конечно, это зависит от контроллера, дисков, шин и множества других параметров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .