Что такое REUSEPORT? Если кратко, то в много поточном приложении позволяет каждому потоку напрямую привязаться к tcp socket’y (адрес:порт). Это позволяет быстрее принимать пакеты (без REUSEPORT пришлось бы получать пакеты через мастер-процесс).
В статье рассмотрим, как можно узнать/понять, использует ли ваше приложение REUSEPORT штатными средствами ОС. О том, как обстоит поддержка REUSEPORT в разных ОС написана очень неплохая статья, но вот касательно Solaris данные там устаревшие.
FreeBSD
Здесь всё просто: первый вывод без использования REUSEPORT, второй – с ним.
# procstat -f 94919 PID COMM FD T V FLAGS REF OFFSET PRO NAME ... 95154 unbound 3 s - rw---n-- 5 0 UDP 0.0.0.0:53 0.0.0.0:0 95154 unbound 4 s - rw---n-- 5 0 TCP 0.0.0.0:53 0.0.0.0:0 ...
# procstat -f 94919 PID COMM FD T V FLAGS REF OFFSET PRO NAME ... 94919 unbound 3 s - rw---n-- 2 0 UDP 0.0.0.0:53 0.0.0.0:0 94919 unbound 4 s - rw---n-- 2 0 TCP 0.0.0.0:53 0.0.0.0:0 94919 unbound 5 s - rw---n-- 2 0 UDP 0.0.0.0:53 0.0.0.0:0 94919 unbound 6 s - rw---n-- 2 0 TCP 0.0.0.0:53 0.0.0.0:0 94919 unbound 7 s - rw---n-- 2 0 UDP 0.0.0.0:53 0.0.0.0:0 94919 unbound 8 s - rw---n-- 2 0 TCP 0.0.0.0:53 0.0.0.0:0 94919 unbound 9 s - rw---n-- 2 0 UDP 0.0.0.0:53 0.0.0.0:0 94919 unbound 10 s - rw---n-- 2 0 TCP 0.0.0.0:53 0.0.0.0:0 ...
Solaris
К сожалению, мне так и не удалось найти работающий вариант ПО под Solaris, что бы он использовал REUSEPORT, хотя со стороны ОС этот функционал реализован. Посмотреть, используется ли reuseport, можно командой:
# pfiles <PID>
Если в выводе присутствует REUSEPORT, значит используется.
Linux
Можно посмотреть только через подгрузку модуля, который добавляет в вывод netstat SO_ опции. Других вариантов посмотреть, используется ли REUSEPORT я не нашёл.