На этом этапе вы научитесь проверять и изменять функции сетевой разгрузки (offload features). Это расширенные возможности сетевой карты (NIC), которые позволяют оборудованию выполнять задачи, обычно обрабатываемые центральным процессором (CPU), такие как вычисление контрольных сумм или сегментация данных. Разгрузка этих задач может повысить производительность сети.
Сначала давайте посмотрим текущие настройки разгрузки для вашего интерфейса, используя флаг -k (или --show-features).
ethtool -k eth0
Вы увидите список функций, некоторые из которых помечены как on (включено), а некоторые как off (выключено). Статус [fixed] означает, что настройка не может быть изменена пользователем.
Features for eth0:
rx-checksumming: on [fixed]
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: on
tx-tcp-mangleid-segmentation: off
tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
... (вывод длинный и может отличаться)
Теперь давайте попрактикуемся в изменении одной из этих настроек. Мы временно отключим TX checksumming (контрольную сумму при передаче). Эта операция требует прав администратора, поэтому необходимо использовать sudo и флаг -K (или --features).
sudo ethtool -K eth0 tx-checksumming off
Команда теперь сообщает о внесенных изменениях. Обратите внимание, что отключение tx-checksumming автоматически отключило другие связанные функции. Это связано с тем, что некоторые функции зависят от других.
Actual changes:
tx-checksum-ip-generic: off
tx-tcp-segmentation: off [not requested]
tx-tcp-ecn-segmentation: off [not requested]
tx-tcp6-segmentation: off [not requested]
Чтобы проверить изменение в полном списке, вы можете снова выполнить ethtool -k eth0.
Теперь давайте снова включим его, чтобы восстановить стандартное поведение, повышающее производительность.
sudo ethtool -K eth0 tx-checksumming on
Снова вывод показывает фактические изменения. Вы можете увидеть, что, даже если вы запросили функцию on, она останется off, если оборудование имеет фиксированную настройку. Также показано автоматическое повторное включение связанных функций.
Actual changes:
tx-checksum-ipv4: off [requested on]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [requested on]
tx-tcp-segmentation: on [not requested]
tx-tcp-ecn-segmentation: on [not requested]
tx-tcp6-segmentation: on [not requested]
tx-checksum-fcoe-crc: off [requested on]
tx-checksum-sctp: off [requested on]
Завершив этот шаг, вы узнали, как просматривать и изменять аппаратные функции разгрузки вашей сетевой карты, и увидели, как зависимости функций и аппаратные ограничения влияют на результат.