Понимание рекомендованных профилей RedHat

8

Мы собираемся развернуть настроенные (и numad) на ~ 1000 серверов, большинство из которых являются серверами VMware либо в хранилище NetApp, либо в 3Par.

Согласно документации RedHats, мы должны выбрать virtual-guestпрофиль. Что он делает, можно увидеть здесь: tuned.conf

Мы меняем планировщик ввода-вывода на NOOP, поскольку и VMware, и NetApp / 3Par должны выполнять для нас достаточное планирование.

Однако после небольшого расследования я не уверен, почему они увеличиваются vm.dirty_ratioи kernel.sched_min_granularity_ns.

Насколько я понял, увеличение vm.dirty_ratioдо 40% будет означать, что для сервера с оперативной памятью 20 ГБ 8 ГБ могут быть грязными в любой момент времени, если не vm.dirty_writeback_centisecsбудет достигнут первый удар. И при очистке этих 8 ГБ все операции ввода-вывода для приложения будут блокироваться до тех пор, пока грязные страницы не будут освобождены.

Увеличение dirty_ratio, вероятно, будет означать более высокую производительность записи на пиках, так как теперь у нас увеличен кэш, но опять же, когда кэш заполняется, ввод-вывод будет блокироваться на значительно более длительное время (несколько секунд).

Другое, почему они увеличивают sched_min_granularity_ns. Если я правильно понимаю, увеличение этого значения приведет к уменьшению количества временных интервалов в эпоху ( sched_latency_ns), что означает, что у запущенных задач будет больше времени для завершения своей работы. Я могу понять, что это очень хорошая вещь для приложений с очень небольшим количеством потоков, но, например, для. apache или другие процессы с большим количеством потоков это не будет контрпродуктивным?

espenfjo
источник

Ответы:

7

Короткий ответ: любая настройка является догадкой и имеет ценность только в том случае, если она подкреплена эмпирическими данными: попробуйте. Измерь это. Если вам это не нравится, настройте его.

Более длинный ответ:

Увеличение dirty_ratio, вероятно, будет означать более высокую производительность записи ... IO будет заблокирован на значительно более длительное время

Нет. Увеличение коэффициента загрязнения означает, что ваша система с меньшей вероятностью попадет в состояние, в котором она должна начать блокировать записи. Недостатком является то, что используется больше памяти и повышается риск потери данных при сбое.

Это означает, что выполняющиеся задачи получат больше времени для завершения своей работы

Процессы обычно срабатывают до истечения времени. Проблема с виртуальной машиной заключается в том, что ваша машина может конкурировать за ЦП и кэш-память L1 / L2 с другими виртуальными машинами - высокий уровень переключения задач (из-за упреждения) оказывает большое влияние на пропускную способность. Типы приложений, которые обычно развертываются на виртуальных машинах, - это приложения с привязкой к ЦП (веб-серверы, серверы приложений).

Да, увеличение пропускной способности (которое применяется ко всем типам приложений) будет происходить за счет увеличения задержки - но последняя составляет порядка микросекунд, когда большинство транзакций занимают миллисекунды. Если вам нужна возможность в реальном времени / очень низкая задержка, вам не следует использовать виртуальную машину.

symcbean
источник
Серьезно. Это всего лишь рекомендации. Настройтесь на свой вкус. Я все еще использую рекомендованный планировщик «крайнего срока» для виртуальных машин.
ewwhite
1
@ewwhite Почему вы бы порекомендовали deadlineвместо NOOP на VMware с надлежащим хранилищем?
Espenfjo
@espenfjo Ну, потому что RedHat рекомендует deadline... но также увидеть мой ответ.
ewwhite
12

Вот график настроек tuned-adm ...

Я думаю, что это помогает увидеть их в табличной форме. Главное отметить, что стандартные настройки RHEL6 отстой! Другое дело, что профили корпоративного хранилища и виртуального гостя идентичны, за исключением уменьшения перестановки на стороне виртуального гостя (имеет смысл, верно?).

настроенные профили

Что касается рекомендации по лифту ввода-вывода в хранилище, у вас есть несколько уровней абстракции на уровне хранилища. Использование планировщика noop будет иметь смысл, если вы используете RDM или представляете хранилище непосредственно своим виртуальным машинам. Но поскольку они будут работать в NFS или VMFS, мне все еще нравятся дополнительные параметры настройки, предоставляемые планировщиком сроков.

Настроенные профили могут быть изменены на лету в работающих системах, поэтому, если у вас есть какие-либо проблемы, протестируйте с вашим приложением и конкретной средой и тестом.

ewwhite
источник
1
хорошо спасибо. Поймите, почему вы хотите deadlineсейчас :)
espenfjo
8

Посмотрите видео о настройке производительности Шака и Ларри с Summit, они подробно рассказывают о настроенных профилях.

Один из самых важных выводов заключается в том, что профили являются только рекомендуемой отправной точкой, а не неизменными числами, которые магически идеально подходят для любой среды.

Начните с одного профиля и поэкспериментируйте с настройками. Создайте хорошую рабочую нагрузку для тестирования и измерьте показатели, которые важны для вашего бизнеса.

Изменяйте одну вещь за раз и записывайте каждый результат на каждой итерации. Когда вы закончите, просмотрите результаты и выберите настройки, которые дали наилучшие результаты. Это ваш идеальный настроенный профиль.

suprjami
источник
Есть ссылка на разговор с Shak & Larry?
Аарон Копли
2
Я добавил видео ссылки на мой ответ.
suprjami