LSILogic 1064 - QUEUE FULL EVENT

Итак, имеем в распоряжении новый сервер следующего конфига:

  • 2хXeon E5630
  • RAM 48 Gb
  • SAS адаптер LSILogic 1064
  • 3 Seagate SAS 10000 rpm
  • 2 Seagate SAS 15000 rpm
  • 1 Seagate SAS 10000 rpm 600Gb
  • 2 Toshiba SATA по 1 Tb.

На сервер установлена операционная система FreeBSD 8.1.
Процесс установки прошел штатно, все в норме, не считая некоторой ругани на ACPI.
Я предпочитаю не ставить дерево портов с диска, а качать из сети свежее. После установки портов, кто не в курсе:

server /# portsnap fetch extract

смотрим dmesg:

server /# dmesg | grep mpt
mpt0:  port 0xc000-0xc0ff mem 0xdf3ec000-0xdf3effff,0xdf3f0000-0xdf3fffff irq 16 at device 0.0 on pci5
mpt0: [ITHREAD]
mpt0: MPI Version=1.5.20.0
mpt0: Capabilities: ( RAID-0 RAID-1E RAID-1 )
mpt0: 0 Active Volumes (2 Max)
mpt0: 0 Hidden Drive Members (14 Max)
da0 at mpt0 bus 0 scbus0 target 11 lun 0
da1 at mpt0 bus 0 scbus0 target 12 lun 0
da2 at mpt0 bus 0 scbus0 target 15 lun 0
da3 at mpt0 bus 0 scbus0 target 16 lun 0
da4 at mpt0 bus 0 scbus0 target 17 lun 0
da5 at mpt0 bus 0 scbus0 target 18 lun 0
da6 at mpt0 bus 0 scbus0 target 19 lun 0
SMP: AP CPU #1 Launched!da7 at mpt0 bus 0 scbus0 target 20 lun 0
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x0f Depth 128
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x0f Depth 128
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x0f Depth 128
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x10 Depth 127
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x10 Depth 127

Последние 3 строки тут явно лишние. Зпись Target 0x0f — в десятичном представлении 15, а Target 0x0f — 16, смотрим чуть выше target 15 и target 16, это у нас диски da2 и da3. В моем случае это SAS диски 10к. Те-же самые сообщения можно получить и для других дисков, если дать на них соответствующую нагрузку.
Воспроизводится довольно легко:

server #/ find / -name "*"

Теперь можно посмотреть, кто у нас там da2 и da3:

server /# dmesg | grep -E "da2|da3"
da2 at mpt0 bus 0 scbus0 target 15 lun 0
da2:  Fixed Direct Access SCSI-5 device
da2: 300.000MB/s transfers
da2: Command Queueing enabled
da2: 140014MB (286749488 512 byte sectors: 255H 63S/T 17849C)
da3 at mpt0 bus 0 scbus0 target 16 lun 0
da3:  Fixed Direct Access SCSI-5 device
da3: 300.000MB/s transfers
da3: Command Queueing enabled
da3: 140014MB (286749488 512 byte sectors: 255H 63S/T 17849C)
Trying to mount root from ufs:/dev/da2s1a

Это у нас 2 диска SEAGATE, модель ST9146803SS.
Далее если интересно, можно найти на сайте производителя спецификацию на данную модель хардов, скачать ее и почитать.

Standard features:
128 - deep task set (queue)

Если я правильно понял, это и есть значение, которое превышает FreeBSD. То есть мы пытаемся запихнуть в очередь больше, чем определено настройками.
Проверяем:

server /# camcontrol tags da2 -v
(pass2:mpt0:0:15:0): dev_openings  255
(pass2:mpt0:0:15:0): dev_active    0
(pass2:mpt0:0:15:0): devq_openings 255
(pass2:mpt0:0:15:0): devq_queued   0
(pass2:mpt0:0:15:0): held          0
(pass2:mpt0:0:15:0): mintags       2
(pass2:mpt0:0:15:0): maxtags       255

Ставим новое значение, чуть меньше чем написано в сообщении dmesg:

server /# camcontrol tags da2 -N 126
(pass2:mpt0:0:15:0): tagged openings now 126
(pass2:mpt0:0:15:0): device openings: 126

После этого можно снова попробовать воспроизвести ситуацию, однако новых сообщений о переполнении очереди в dmesg не появится.
Что-бы настройки вступали в силу, при загрузке FreeBSD, достаточно прописать в файл /etc/rc.conf строку для каждого диска:

camcontrol tags da2 -N 126

Покурив интернеты, более простого решения не нашел.

Комментарии

Вчера работал все было ОК. Сейчас не могу посмотреть базу данных
Выдает ошибку "
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right
syntax to use near '' at line 2"
Что нужно делать ?

проверить синтаксис запроса

Подвисает 2 системы после portsnap update если много обновлений. Помогает только локальный перезагруз.
Хотелось бы знать, снижение параметра поможет решить проблему зависона (если она из-за этого) или чисто косметически отключит логирование?

не поможет, поскольку одно с другим не связано

Спасибо.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
  oooooooooooo  ooooooo  ooooo        .o                      .o.                   
d'""""""d888' `8888 d8' .d88 .888.
.888P Y888..8P .d'888 .ooooo oo .8"888. .oooooooo
d888' `8888' .d' 888 d88' `888 .8' `888. 888' `88b
.888P .8PY888. 88ooo888oo 888 888 .88ooo8888. 888 888
d888' .P d8' `888b 888 888 888 .8' `888. `88bod8P'
.8888888888P o888o o88888o o888o `V8bod888 o88o o8888o `8oooooo.
888. d" YD
8P' "Y88888P'
"
Введите код, изображенный в стиле ASCII-арт.