
У меня есть сервер со следующими характеристиками:https://www.soyoustart.com/it/offerte/1801sysgame05.xml
Процессор Intel i7-4790K
Оперативная память 32 ГБ DDR3 1333 МГц
Трафик безлимитный, анти-DDoS включен
Диски 1x240 ГБ SSD
Пропускная способность 250 Мбит/с
Я установил дистрибутив Proxmox Linux, который запускает контейнер на основе сервера Ubuntu для управления игровым сервером TCP в реальном времени, написанным на C++. На данный момент количество пользователей онлайн достигло около 1000 человек, и вскоре мы собираемся удвоить это число.
Проблема в том, что мы сталкиваемся со странным «узким местом» производительности, как только число онлайн-пользователей достигает ~850. Как только оно возвращается к ~800 или меньше, узкое место исчезает. На практике происходит следующее: игрокам приходится ждать около 30 секунд, чтобы подключиться к серверу, в то время как уже подключенные игроки не испытывают никаких проблем (никаких задержек, никаких зависаний и т. д.). Похоже на перегрузку сети, или ограничение по количеству, или что-то подобное, что запрещает дальнейшие подключения к тому же процессу и создает нагрузку на наш процессор (как вы можете видеть на скриншотах ниже)
Здесь я собрал несколько графиков из наших NetData, где я заметил ту же самую «картину».softirqs RCUЯ думаю, это имеет особое значение, но я не знаю, что именно это означает.
SoftIRQ RCU:
использование/нагрузка ЦП:
частота процессора
температура процессора
Я не думаю, что проблема в самом процессоре, но, как было сказано выше, похоже на что-то, связанное с ограничением процесса или чем-то подобным.
Вы хоть понимаете, что происходит?
ОБНОВЛЯТЬ:
другой связанный график
решение1
Я решил эту проблему, увеличив ulimit
В моем конкретном случае проблема заключалась в том, что ulimit должен быть увеличен (как жесткий, так и мягкий) и постоянно настроен в папке /etc/ как для хоста, так и для контейнера lxc.
Кроме того, я изменил свой контейнер на привилегированный, но не уверен, что это действительно необходимо. Возможно, есть способ исправить это и для привилегированного контейнера, но мне это не удалось.