Я пишу серверное приложение, которое должно обслуживать много запросов. Я попытался провести некоторое тестирование и обнаружил, что у меня есть ограничение на пропускную способность сервера. Мое текущее предположение состоит в том, что узкое место в обработке TCP.
Мой вопрос: как я могу подтвердить или опровергнуть свое предположение? Какие метрики я должен смотреть и какие значения можно рассматривать как подсказку? Буду также признателен за любые советы по использованию инструмента.
ОС сервера - Linux. Мое приложение написано на Java. Не стесняйтесь просить больше информации в комментариях.
PS Я не совсем уверен, где этот вопрос должен быть опубликован. Может быть, его следует перенести на serverfault?
UPD: это сервис http, с текущей пропускной способностью около 450 рэк / сек и средним размером ответа около 20 КБ. Обратите внимание, что он выполняет 6-8 запросов к mongodb и один к memcached для каждого клиентского запроса.
UPD2: я забыл очень важный момент: сетевой интерфейс используется недостаточно, он использует только 80-100 МБ из 1 ГБ. Процессор и память на сервере приложений и в БД тоже не загружены.