Я переезжаю в нашем видеостриминговом сервере с erlang на rust и для того, чтобы нащупать границы возможного, прикупил 100-гигабитного железа в ближайшем мвидео.
Простой бенчмарк между двумя десктопными компами: тредриппер раздает по http, ryzen принимает
Бенчмарк примитивнейший: скачиваем файлики и выбрасываем их.
На принимающей стороне perf top показывает:
Samples: 6M of event 'cycles:P', 4000 Hz, Event count (approx.): 1322687736231 lost: 0/0 drop: 0/0
Overhead Shared Object Symbol
29.47% [kernel] [k] _copy_to_iter
16.25% libc.so.6 [.] __memmove_avx512_unaligned_erms
4.15% [kernel] [k] mlx5e_build_rx_skb
3.52% [kernel] [k] clear_page_erms
2.33% [kernel] [k] check_heap_object
1.83% [kernel] [k] __check_object_size.part.0
1.56% [kernel] [k] mlx5e_copy_skb_header
1.36% [kernel] [k] __napi_alloc_skb
1.15% libc.so.6 [.] _int_malloc
Правильно ли я понимаю, что это индикация того, что весь процессор (нагрузка на все ядра под 85%) занимается перекопированием из ядра в программу, причем жрет на это под 35% всех ресурсов?
Т.е. переход на io_uring может помочь?



