- Настройка Linux I / O Scheduler для твердотельных накопителей
- Настройка Linux I / O Scheduler для твердотельных накопителей
- Настройка планировщика ввода-вывода Linux
- Настройка производительности NuoDB
- Как и когда менять планировщик ввода-вывода в Linux
- Зачем использовать планировщик:
- Типы планировщиков:
- Проверить текущий планировщик:
- Измените планировщик ввода-вывода:
- Заключение:
Настройка Linux I / O Scheduler для твердотельных накопителей
Настройка Linux I / O Scheduler для твердотельных накопителей
Я собираюсь поговорить о настройке планировщика ввода-вывода Linux для увеличения пропускной способности и уменьшения задержки на SSD. Я также затрону еще одну интересную тему о настройке производительности NuoDB, указав хранилище для архива и каталогов журналов.
Настройка планировщика ввода-вывода Linux
Linux дает вам возможность выбрать планировщик ввода / вывода. Планировщик также может быть изменен без перезагрузки! В этот момент вы можете спросить: «Зачем мне вообще менять планировщик ввода-вывода?» Изменение планировщика имеет смысл, когда затраты на оптимизацию ввода-вывода (переупорядочение запросов ввода-вывода) не нужны и дороги. Этот параметр должен быть точно настроен для каждого устройства хранения. Лучшая настройка для SSD не будет хорошей настройкой для HDD.
Текущий планировщик ввода / вывода можно просмотреть, введя следующую команду:
mrice@host:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq]
Текущий планировщик ввода / вывода (в скобках) для / dev / sda на этом компьютере — CFQ , полностью честная очередь. Этот параметр стал стандартным в ядре 2.6.18 и хорошо работает для жестких дисков. Однако твердотельные накопители не имеют вращающихся пластин или магнитных головок. Алгоритмы оптимизации ввода / вывода в CFQ не применяются к твердотельным накопителям. Для твердотельных накопителей планировщик ввода-вывода NOOP может уменьшить задержку ввода-вывода и увеличить пропускную способность, а также исключить время ЦП, затрачиваемое на переупорядочение запросов ввода-вывода. Этот планировщик обычно хорошо работает на SAN, SSD, виртуальных машинах и даже на модных картах ввода-вывода Fusion. В этот момент вы, вероятно, думаете: «Хорошо, я продан! Как мне уже изменить планировщик?» Вы можете использовать команду echo, как показано ниже:
mrice@host:~$ echo noop | sudo tee /sys/block/sda/queue/scheduler
Чтобы увидеть изменения, просто перезапустите планировщик.
mrice@host:~$ cat /sys/block/sda/queue/scheduler [noop] anticipatory deadline cfq
Обратите внимание, что noop теперь выбран в скобках. Это изменение носит временный характер и будет сброшено к планировщику по умолчанию, в данном случае CFQ, когда машина перезагрузится. Вам нужно отредактировать конфигурацию Grub, чтобы сохранить настройки навсегда. Однако это изменит планировщик ввода-вывода для всех блочных устройств. Проблема в том, что NOOP не является хорошим выбором для HDD. Я бы только навсегда изменил настройку, если бы на машине были только SSD.
Edit: /etc/default/grub Add "elevator=noop" to the GRUB_CMDLINE_LINUX_DEFAULT line. sudo update-grub
На этом этапе вы изменили планировщик ввода-вывода на NOOP. Как вы знаете, если это имеет значение? Вы можете запустить сравнительный тест и сравнить числа (просто не забудьте очистить кэш файловой системы). Другой способ — взглянуть на вывод iostat. Запросы ввода-вывода проводят меньше времени в очереди с планировщиком ввода-вывода NOOP. Это можно увидеть в поле «await» от iostat. Вот пример более крупной операции записи с NOOP.
Прибор: | SDA |
rrqm / с | 0,00 |
wrqm / с | 143819,00 |
R / S | 6,00 |
ж / с | 2881,00 |
RKB / с | 24,00 |
ВКБ / с | 586800,00 |
avgrq-SZ | 406,53 |
avgqu-SZ | 0,94 |
Ждите | 0,33 |
r_await | 3,33 |
w_await | 0,32 |
svctm | 0,11 |
% Util | 31,00 |
Настройка производительности NuoDB
Теперь, когда вы узнали о планировщике ввода-вывода NOOP, я расскажу о настройке NuoDB с помощью SSD. Если вы прочли технические блоги, то узнаете, что для базы данных NuoDB есть два строительных блока: механизм транзакций, сокращенно TE, и менеджер хранилища SM. TE — это копия базы данных только в памяти (фактически часть базы данных). В результате SSD не поможет производительности TE, потому что он не сохраняет атомы на диск. SM содержит два модуля для записи на диск: архив и журнал. В архиве атомы хранятся на диске, когда параметр конфигурации архива указывает на файловую систему (по сравнению с HDFS и S3). Журнал, с другой стороны, синхронно записывает сообщения на диск. Если вы читаете пост в блоге о долговечности Возможно, вы помните, что параметр «Удаленная фиксация с ведением журнала» обеспечивает наивысший уровень надежности, но за счет более низкой скорости. Использование SSD в этой ситуации может значительно улучшить производительность.
Чтобы настроить этот параметр, нам нужно создать каталог nuodb на SSD:
SSD в этом примере имеет точку монтирования / ssd на этом компьютере. Легко, правда? Я предполагаю, что вы уже установили планировщик ввода-вывода Linux для SSD на NOOP. Следующим шагом является настройка NuoDB для использования этого пути при создании каталога журнала. Журнал имеет прямую корреляцию с пропускной способностью транзакции, поскольку журнал должен завершить запись на диск, прежде чем SM отправит ACK для подтверждения транзакции в TE. Как насчет архива? Архив отделен от фиксации транзакции, атомы останутся в памяти и постепенно попадут на диск. Это будет очень мало влиять на TPS базы данных. В результате каталог архива можно разместить только на обычном жестком диске. Краткое руководство по настройке производительности — поместить журнал на SSD, а архив можно поместить на жесткий диск.
nuodbmgr --broker localhost --password bird nuodb [domain] > start process sm Database: hockey Host: s1 Process command-line options: --journal enable --journal-dir /ssd/nuodb/demo-journal Archive directory: /var/opt/nuodb/demo-archives Initialize archive: true Started: [SM] s1/127.0.0.1:37880 [ pid = 25036 ] ACTIVE nuodb [domain/hockey] > start process te Host: t1 Process command-line options: --dba-user dba --dba-password goalie Started: [TE] t1/127.0.0.1:48315 [ pid = 25052 ] ACTIVE
Важным моментом этой настроенной конфигурации является то, что только журнал находится на SSD. В результате твердотельный накопитель не обязательно должен быть одним из этих огромных дисков с ТБ. Стоимость твердотельных накопителей значительно упала в цене, и для данных журнала достаточно одного твердотельного накопителя емкостью 128 или 256 ГБ. Эта конфигурация должна соперничать с локальной эффективностью фиксации, которая является потрясающей, учитывая, что это самый высокий уровень долговечности! Я призываю вас попробовать и задать несколько вопросов.
Как и когда менять планировщик ввода-вывода в Linux
Добавить в избранное
Главное меню » Linux » Как и когда менять планировщик ввода-вывода в Linux
П ланировщик ввода/вывода — увлекательная тема; Заранее разберемся, как и когда настраивать планировщик ввода-вывода; давайте получим более глубокое понимание того, что делают планировщики ввода-вывода. Планировщик ввода-вывода Linux управляет тем, как ядро фиксирует, читает и записывает на диск. Руководители имели возможность настраивать систему планирования примерно с версии ядра 2.6, что позволяло им адаптировать свои фреймворки к своим точным требованиям. Долгое время считалось, что доступность диска является относительно медленным средством доступа к данным. Несмотря на растущее распространение флэш-памяти и твердотельного пространства, получение данных с диска происходит медленнее, чем сбор информации из ОЗУ. Это особенно актуально, если каркас основан на вращающихся дисках.
Зачем использовать планировщик:
Так и есть, поскольку стандартные вращающиеся диски записывают информацию в зависимости от места на вращающемся диске. При доступе к данным с вращающегося диска фактический привод должен повернуть пластины в определенное положение, чтобы можно было прочитать информацию. Это называется «поиском», потому что это может занять гораздо больше времени с точки зрения вычислений. Планировщики ввода-вывода призваны помочь вам максимально эффективно использовать права доступа к диску. Мы делали то же самое, комбинируя транзакции ввода-вывода и отправляя их в соседние места на диске. Приводу даже не нужно так много «искать», когда запросы группируются в смежных частях диска, что улучшает среднее время отклика для операций с диском. В текущих архитектурах Linux доступно множество планировщиков ввода-вывода. У любого из них есть своя система для организации запросов доступа к диску.
Типы планировщиков:
Кажется, есть 3 типа планировщиков на выбор, каждый из которых имеет свой набор преимуществ в операционной системе Linux. Итак, вот список и объяснение каждого планировщика:
- CFQ (cfq): стандартный планировщик для многих дистрибутивов Linux; он объединяет одновременные запросы, сделанные операциями, в серию пулов для каждого процесса перед выделением временных интервалов для использования диска для каждой очереди.
- Планировщик Noop (noop): это самый простой планировщик ввода-вывода для ядра Linux, основанный на принципе пула FIFO. Этот планировщик хорошо работает с твердотельными накопителями.
- Планировщик крайнего срока (deadline): этот планировщик пытается обеспечить период начала обслуживания запроса.
Проверить текущий планировщик:
Прежде чем двигаться дальше, вы должны знать о планировщике ввода-вывода, настроенном в вашей текущей системе Linux. Во время реализации мы использовали систему Ubuntu 20.04 Linux, поэтому наш планировщик будет. Возможно, в вашей системе Linux может быть настроен другой планировщик ввода-вывода. Итак, войдите в свою текущую систему Linux, чтобы попробовать ее проверить. Теперь запустите оболочку терминала, используя простую комбинацию клавиш «Ctrl+Alt+T». Вы можете попробовать открыть оболочку терминала, используя область панели действий на рабочем столе Linux. Теперь терминал командной оболочки открыт, мы можем приступить к работе над ним. Прежде всего, мы должны войти в систему как пользователь sudo из терминала, чтобы работать эффективно и без перебоев. Итак, введите команду «su» в терминале для входа в систему. Она попросит вас ввести пароль вашей учетной записи sudo для входа с нее.
Теперь пора проверить и определить планировщик ввода-вывода в нашей системе Linux. Как вы знаете, в настоящее время мы работаем над системой Ubuntu 20.04 Linux, чтобы соответствовать ей, и мы должны проверить это, прочитав файл планировщика по его пути. Итак, мы должны опробовать приведенную ниже инструкцию cat в терминале оболочки вместе с указанием местоположения файла по пути и нажать кнопку «Enter» на пишущей машинке вашего компьютера.
# cat /sys/block/sda/queue/scheduler
Вы должны прояснить, что планировщики ввода-вывода с несколькими очередями — это отдельные планировщики ввода-вывода, предлагаемые в Ubuntu Eoan Ermine 19.10, а также стремительно.
Измените планировщик ввода-вывода:
Если пользователь системы Linux хочет изменить свой планировщик ввода-вывода на «Kyber», он должен сначала установить пакет «kyber» в свою систему Linux, выполнив два следующих шага. Необходимо выполнить приведенную ниже команду sudo с ключевым словом «modprobe» с именем планировщика «kyber-iosched».
# sudo modprobe kyber-iosched
Второй шаг — запустить ту же команду «cat», упомянутую в одной из вышеперечисленных команд, чтобы установить ее.
# cat /sys/block/sda/queue/scheduler
Теперь «kyber» успешно настроен. Теперь вы можете включить «kyber», используя приведенную ниже команду планировщика «echo» вместе с ключевыми словами «sudo» и «tee», к которым привязан путь к планировщику. Выходное изображение представляет включенный планировщик «kyber».
# echo “kyber” | sudo tee /sys/block/sda/queue/scheduler
Результат ниже показывает, что «kyber» установлен по умолчанию.
# cat /sys/block/sda/queue/scheduler
Чтобы изменить планировщик на планировщик «bfq», установите его с помощью следующей команды.
Теперь запустите ту же команду «cat».
# cat /sys/block/sda/queue/scheduler
Теперь, когда «bfq» установлен, включите его с помощью той же команды echo.
# echo “bfq” | sudo tee /sys/block/sda/queue/scheduler
Проверьте планировщик по умолчанию «bfq» с помощью команды cat.
# cat /sys/block/sda/queue/scheduler
Заключение:
В этой обучающей статье описан простой способ изменить планировщик ввода-вывода с помощью двух разных планировщиков. Мы обсудили, почему система хочет изменить свой планировщик, надеясь, что это сработает для вас.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.