Більшість систем 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-why-tuning - дійсно має значення
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 у виробничих сценаріях.