Ключевые слова:ide, linux, hardware, sata, optimizaion, tune, speed, patch, (найти похожие документы)
From: Alexey Kovyrin <alexey@kovyrin.net.>
Date: Mon, 10 Aug 2006 14:31:37 +0000 (UTC)
Subject: Включение поддержки NCQ Queing на чипсетах ICH7 Chipsets под Linux
Оригинал: http://blog.kovyrin.net/2006/08/11/turn-on-ncq-on-ich-linux/lang/ru/
Недавно на нескольких из наших серверов, обслуживающих миллионы
косещений в сутки, мы достигли предела производительности дисковой
подсистемы. Когда я начал анализировать методы, которыми можно
исправить ситуацию, я обратил внимание, что на эти сервера имеют
чипсеты ICH7 и SATA-диски Seagate с поддержкой NCQ... Но при ближайшем
рассмотрении я увидел, что поддержка NCQ не включена на этих серверах
с IDE-драйвером ata_piix. Итак, я решил было бы отлично включить
поддержку NCQ и взглянуть, как это повлияет на производительность
(было очевидно, что она должна увеличиться)...
Беглый поиск показал, что для начала нам необходимо включить режим
совместимости AHCI в BIOS сервера для того, чтобы использовать
SATA-драйвер ahci из последней версии ядра Linux 2.6. После включения
AHCI я увидал в логах сервера следующее:
ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl SATA mode
ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part
ata1: SATA max UDMA/133 cmd 0xFFFFC20000022500 ctl 0x0 bmdma 0x0 irq 66
ata2: SATA max UDMA/133 cmd 0xFFFFC20000022580 ctl 0x0 bmdma 0x0 irq 66
ata3: SATA max UDMA/133 cmd 0xFFFFC20000022600 ctl 0x0 bmdma 0x0 irq 66
ata4: SATA max UDMA/133 cmd 0xFFFFC20000022680 ctl 0x0 bmdma 0x0 irq 66
scsi0 : ahci
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-7, max UDMA/133, 586072368 sectors: LBA48
ata1.00: ata1: dev 0 multi count 16
ata1.00: configured for UDMA/133
scsi1 : ahci
......
Vendor: ATA Model: ST3300622AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: ST3300622AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: ST3300622AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 05
Vendor: ATA Model: ST3300622AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 05
......
Как вы видите - ни одного упоминания об NCQ для SATA-дисков не
наблюдалось... Но официальная страница библиотеки libata заявляет, что
поддержка должна быть там!
Более глубокие исследования показали, сто libata в ядре linux 2.6 не
содержит поддержки NCQ для AHCI-чипсетов. :-( Тогда я решил копнуть
глубже и найти вохможность поставить новую версию libata на linux
2.6... К сожалению, официальный сайт libata сожержал только
устаревшие патчи для linux 2.6. После долгих поисков я нашел сайт с
патчами libata для самого свежего ядра 2.6, который позволял
получить последнюю версию библиотеки libata и включить поддержку NCQ
на моих дисках! Этот сайт - домашнаяя страница Tejun Heo - Корейского
хокера ядра, который поддерживает набор патчей libata-tj-stable.
После применения описанного патча и перезагрузки я с удовлетворением
увидел следующие сообщения насчет каналов sata-контроллера:
...
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-7, max UDMA/133, 586072368 sectors: LBA48 NCQ (depth 31/32)
ata1.00: ata1: dev 0 multi count 16
ata1.00: configured for UDMA/133
...
Итак, тетерь поддержка NCQ включена на наших дисках и мы получили
дополнительные 15-30% дополнительной производительности (я вижу ее на
графиках трафика, потому никаких глубоких тестов не проводил -
результат оказался очевиден). Итак, если вы имеете ICH-контроллер и
хотите получить поддержку NCQ на ваших дисках, попробуйте эти патчи -
они действительно стабильны.