Что: d32fdefcb323fe32d6685bf91f5fd24188103b1e Когда: 2024-02-25 00:05:03+03:00 ------------------------------------------------------------------------ Темы: bsd hate netperf tip ------------------------------------------------------------------------ Оптимизация поиска в libalias https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253912 У меня было много проблем с нагрузкой на CPU в моём ipfw: f8e2e4dfc6870c4dad7e62be9bb02ae9dd73d180. Всё жутко сильно упиралось в NAT, а точнее libalias реализацию, используемую в ipfw. Сегодня снова разбирался во всём этом, ибо у меня Xeon современный, а у него половина ресурсов занята сетью, а точнее libalias-ом. Увереннее, уже рефлекторно стал вводил "netstat -Q" (просмотр очередей netisr (kernel network dispatch service)), "top -aSH" (где видны конкретные ядерные модули отнимающие ресурсы), "vmstat -m" (размер памяти отведённой для libalias там виден), "vmstat -i" (видеть распределения прерываний по ядрам). Отчаялся уже, ибо выходило так, что вот ну ни может FreeBSD выжать NAT для 100Mbps интерфейса, за которым всего 1.5 машины по сути (одна с BitTorrent активным, а вторая это мой компьютер, иногда часами ничего не дёргающего из IPv4 Интернета). Но нашёлся bug по ссылке, с патчем, созданный ещё пару лет назад. И никто его не мёржит никуда. Прошло пара часов -- полёт отличнейший. На процессоре смехотворные несколько процентов одного ядра максимум теперь (и это firewall, NAT и AQM). While lookup of outgoing packets uses hash based on both source and destination address, for incoming packets only alias address and port is used. So when multiple connections from different addresses target the same port of redirected address (using redirect_addr or redirect_port in IPFW), the link table must be searched sequentially - tens of thousand of items for every incoming packet. To make it worse, the search is under a lock, so it is forced to run on a single core. Consequently just 1000pps from different addresses are enough to bring down a server with the fastest CPU available in under a minute. Прям вот ситуация именно как у меня, точь-в-точь. И ведь самая обычная банальная домашняя. Как-будто крайне редко и мало кто с ней встречается. Вот тут то и можно бы было сказать что FreeBSD не для дома. Но нет, всего то маленький патчик нужен. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%20%D0%B2%20libalias%20%28d32fdefcb323fe32d6685bf91f5fd24188103b1e%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0