Мы устанавливаем MTU равным 9000 на всех наших Linux-машинах (у нас есть RedHat-машины версии 7.3), Linux-машины являются частью кластеров hadoop.
мы хотим знать, может ли установка MTU на 9000 отрицательно сказаться на производительности ОС?
Установить другое значение Jumbo-кадра как MTU = 8000 или или меньше / больше, будет ли лучше с точки зрения производительности ОС?
Это действительно зависит от вашей нагрузки.
Когда ОС разговаривает с сетевым адаптером (отправка) или сетевая карта разговаривает с ОС (получение), это обычно делается для каждого кадра / пакета. Представьте себе, что каждый раз, когда ваша сетевая карта получает кадр / пакет, она вызывает обработчик прерывания ОС, который обычно требует двух полных переключений контекста каждый раз (один в обработчике, а другой - из обработчика).
MTU устанавливает размер кадра / пакета, отправляемого через сетевой интерфейс. Обычно устанавливается равным 1500 байтам, что и гарантирует базовый Ethernet. Все, что больше этого, называется jumbo-кадром. Даже если вы включите jumbo-кадры, каждый кадр будет такого же размера, как требуется (т.е. MTU - это только верхняя граница). Увеличение MTU потребует поддержки со стороны других компонентов (например, коммутаторов и маршрутизаторов) и может увеличить нагрузку на эти компоненты (например, фрагментация IP).
Когда ваше приложение отправляет большие фрагменты данных, они будут разделены на кадры / пакеты, а MTU интерфейса является верхней границей размера. Конечно, желательно иметь меньше кадров, вызывающих меньшее количество прерываний, что, в свою очередь, уменьшит количество времени, которое ОС будет тратить на обработку прерываний. Однако это верно только в том случае, если ваше приложение отправляет большие порции данных. Хотя включение jumbo-кадров обычно не снижает производительности, это зависит от типа вашей рабочей нагрузки, заметите вы или нет значительное улучшение.
Jumbo-кадры обычно не повреждают саму ОС.