Проверка производительности TCP - PullRequest
2 голосов
/ 17 мая 2011

Я пишу серверное приложение, которое должно обслуживать много запросов. Я попытался провести некоторое тестирование и обнаружил, что у меня есть ограничение на пропускную способность сервера. Мое текущее предположение состоит в том, что узкое место в обработке TCP.

Мой вопрос: как я могу подтвердить или опровергнуть свое предположение? Какие метрики я должен смотреть и какие значения можно рассматривать как подсказку? Буду также признателен за любые советы по использованию инструмента.

ОС сервера - Linux. Мое приложение написано на Java. Не стесняйтесь просить больше информации в комментариях.

PS Я не совсем уверен, где этот вопрос должен быть опубликован. Может быть, его следует перенести на serverfault?

UPD: это сервис http, с текущей пропускной способностью около 450 рэк / сек и средним размером ответа около 20 КБ. Обратите внимание, что он выполняет 6-8 запросов к mongodb и один к memcached для каждого клиентского запроса.

UPD2: я забыл очень важный момент: сетевой интерфейс используется недостаточно, он использует только 80-100 МБ из 1 ГБ. Процессор и память на сервере приложений и в БД тоже не загружены.

1 Ответ

3 голосов
/ 17 мая 2011

Если вы еще этого не сделали, я бы порекомендовал реализовать некоторые записи в серверном приложении.Приложение должно распечатать как минимум эти статистические данные:

  • время начала (первый байт полученного запроса)
  • время окончания запроса: последний байт полученного запроса
  • время обработки: время между последним байтом полученного запроса и первым записанным байтом ответа
  • время передачи: время, необходимое для отправки ответа клиенту

Это поможет вам определить, является ли узкое местоЭто издержки TCP или ваше приложение.Если вы хотите быстрый и грязный просмотр, вы можете использовать WireShark , чтобы увидеть время между последним входящим пакетом запроса и первым выходным пакетом ответа для конкретной транзакции.Тем не менее, будет сложно измерить вручную много транзакций с помощью WireShark, и, в любом случае, наличие хорошей регистрации поможет вам в долгосрочной перспективе.

Удачи!

...