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