Большинство систем Linux, которыми я управляю, поддерживают аппаратные RAID-контроллеры (в основном HP Smart Array ). Они все используют RHEL или CentOS.
Я ищу реальные настраиваемые параметры, помогающие оптимизировать производительность для установок, которые включают аппаратные RAID-контроллеры с дисками SAS (Smart Array, Perc, LSI и т. Д.) И кэш-память с резервным питанием от батареи или флэш-память. Предположим, RAID 1 + 0 и несколько шпинделей (4+ дисков).
Я трачу значительное количество времени на настройку сетевых параметров Linux для приложений с низкой задержкой и финансовых торговых операций. Но многие из этих параметров хорошо документированы (изменение буфера отправки / получения, изменение настроек окна TCP и т. Д.). Что делают инженеры на стороне хранилища?
Исторически сложилось так , что я внес изменения в планировании лифта I / O , в последнее время выбирают для deadline
и noop
планировщики для повышения производительности в рамках своих приложений. По мере развития версий RHEL я также заметил, что скомпилированные значения по умолчанию для блочных устройств SCSI и CCISS также изменились. Это оказало влияние на рекомендуемые параметры подсистемы хранения с течением времени. Однако прошло некоторое время, так как я видел какие-то четкие рекомендации. И я знаю, что настройки ОС по умолчанию не оптимальны. Например, кажется, что буфер упреждающего чтения по умолчанию в 128 КБ чрезвычайно мал для развертывания на оборудовании серверного класса.
В следующих статьях рассматривается влияние на производительность изменения кэша упреждающего чтения и значений nr_requests в очередях блоков.
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-почему-настройка-действительно-важно
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
Например, предлагаются следующие изменения для RAID-контроллера HP Smart Array:
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
Что еще можно надежно настроить для повышения производительности хранилища?
Я специально ищу варианты sysctl и sysfs в производственных сценариях.