Привет, у меня под контролем высоконагруженный сервер который обрабатывает много UDP трафика, но почему-то иногда данные «теряются» (я сейчас в процессе ресёрча, пока не понял что происходит). В логах иногда вижу recv buff error
.
В sysctl.conf
назначил размер rmem и wmem на 128 мегабайт, но вот тут вопрос - эти размеры памяти сразу резервируются в RAM для будущих подключений? Допустим у меня 100 подключений, на каждый резервируется 128 мегабайт, итого выходит 12 800 мегабайт на буфер?
Пытаюсь понять как посчитать нужный размер буфера, но и чтобы без свободной RAM не остаться.
И еще вытекающий вопрос - free -h
показывает что у меня free всего 1.8gb, а cache/buff 159gb, всего 187gb. Такое количество памяти резервируется как раз под мои настройки сетевых буферов?
В общем мне бы какие-то entrypoint’ы дать для погружения в эту тему, был бы очень благодарен.