параметр ядра — net.core.netdev_max_backlog, что происходит, когда он слишком низкий

мы хотим понять, каковы аспекты, когдаnet.core.netdev_max_backlogЗначение ядра очень низкое и не соответствует рекомендациям

на наших машинах с Linux RHEL значение этого параметра равно1000

поскольку наши машины являются машинами HADOOP (кластер BIGDATA)

мы увидели, что лучшая практика — увеличить значение до65536

как описано на:

https://datasayans.wordpress.com/2015/11/04/ Performance-kernel-tuning-for-hadoop-environment/

фон:

Параметр ядра «netdev_max_backlog» — это максимальный размер очереди приема. Полученные кадры будут сохраняться в этой очереди после их взятия из кольцевого буфера сетевой карты. Используйте высокое значение для высокоскоростных карт, чтобы предотвратить потерю пакетов. В приложениях реального времени, таких как SIP-маршрутизатор, длинная очередь должна быть назначена высокоскоростному процессору, иначе данные в очереди будут устаревшими (старыми).

Итак, какие могут быть аспекты, когда этот параметр ядра имеет недостаточное значение?

другое - ссылка - https://gist.github.com/leosouzadias/e37cd189794bb78de502ac25cb605576

https://community.cloudera.com/t5/Community-Articles/OS-Configurations-for-Better-Hadoop-Performance/ta-p/247300

https://www.senia.org/2016/02/28/hadoop-and-redhat-system-tuning-etcsysctl-conf/

https://mapredit.blogspot.com/2014/11/hadoop-server- Performance-tuning.html

https://gist.github.com/phaneesh/38b3d80b38cc76abb1d010f598fbc90a

https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/config/configRecommendedSettings.html

PDF — https://www.cisco.com/c/dam/en/us/solutions/colternal/data-center-virtualization/big-data/cloudera-intel-cisco-hadoop-benchmark.pdf

1 ответ

Каковы могут быть последствия, если значение этого параметра ядра недостаточно?

Выполните следующую команду:

      for i in {1..30}; do date; cat /proc/net/softnet_stat; sleep 1; done

Результатом будет следующее:

      001c1216 000000b0 00000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000
02fdffa5 000000aa 00000032 00000000 00000000 00000000 00000000 00000000 00000000 00000000

02fdffa5 — количество пакетов. 000000aa — количество отброшенных пакетов.

Запустите команду и посмотрите, увеличилось ли количество отброшенных пакетов, преобразуя значение в десятичное. Если количество пакетов увеличилось, увеличьте его до соответствующего значения.

Вы можете временно увеличить значение, выполнив следующую команду:

      sysctl -w net.core.netdev_max_backlog=2000

Вы можете сделать значение постоянным, выполнив следующую команду:

      echo "net.core.netdev_max_backlog = X" >> /etc/sysctl.conf

Кроме того, значение 65536 является чрезмерным и ненужным для правильной работы системы. Вам, очевидно, следует измениться Xна значение, которое вы хотите использовать.

Если второй и третий столбец softnet_stat не растут, то необходимо увеличить

Источник: Как настроить net.core.netdev_max_backlogи net.core.netdev_budgetнастройки ядра sysctl?

Другие вопросы по тегам