У нас есть приложение на основе Java-Netty. Когда происходит всплеск трафика, в приложении наблюдаются скачки загрузки ЦП до 90%, а также увеличение количества ожиданий закрытия. Объем трафика не так высок.
Конфигурация приложения
У нас есть приложение на основе Java-Netty. Когда происходит всплеск трафика, в приложении наблюдаются скачки загрузки ЦП до 90%, а также увеличение количества ожиданий закрытия. Объем трафика не так высок. Конфигурация приложения [list] [*]Netty Threads -> 2 * Процессоры Количество клиентских подключений -> ~ 5000 [*]Подключений на каждый рабочий поток -> ~50 [/list] Ниже приведен мой анализ по тому же вопросу. [list] [*]Конкретные каналы, связанные с рабочим потоком, имеют всплеск в трафике. [*]Из-за внезапного скачка рабочий поток не может обработать запрос быстрее, но начал задыхаться из-за очереди, забитой запросами. [*]Другие каналы Netty, связанные с тем же рабочим потоком, запрашивают тайм-аут и, следовательно, отправляют сигнал FIN для закрытия. [*]В рабочем потоке, поскольку он уже задушен, невозможно закрыть сокет, из-за чего в системе увеличилось время ожидания закрытия. />[*]Это вызвало нагрузку на систему, что привело к увеличению загрузки ЦП. [/list] Может кто-нибудь уточнить, есть ли какие-либо отклонения. И вот мои дополнительные вопросы. [list] [*]Почему рабочий поток не может закрыть канал сокета, когда клиент отправляет FIN? [*]Почему ожидания закрытия приводят к увеличению загрузки ЦП. [/list]