Мы собираемся развернуть настроенные (и 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 или другие процессы с большим количеством потоков это не будет контрпродуктивным?
