Как отладить TCP-соединение отказано? - PullRequest
3 голосов
/ 23 декабря 2011

У меня есть простая (ish) настройка веб-приложения:

LoadGenerator -> Apache -> WebApp

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

Однако, когда я увеличиваю количество тестовых пользователей примерно до 14k ... мой сервер Apache начинает отказывать в некоторых подключениях к моему LoadGenerator. Загрузка ЦП находится далеко от емкости ... и, кажется, нет никаких разорванных подключений от Apache к моему WebApp.

Я полагаю, что у меня заканчивается ресурс на моем сервере Apache, но я не могу сказать, что? Я думал, что это могут быть порты ... но мои соединения не достаточно высоки для этого, я верю.

Затем я попытался просмотреть информацию по tcpdump ... но я действительно не увидел ничего интересного. Хотя, честно говоря, я просто открыл свалку в Wireshark и искал большие красные метки.

Есть ли способ получить сообщения об ошибках вывода ядра в надежде, что я увижу что-то, что говорит мне, что происходит. В идеальном мире я бы увидел сообщение об ошибке типа «ОШИБКА: недостаточно Х для количества соединений».

Любые другие советы, которые вы могли бы порекомендовать, чтобы узнать, почему мой LoadGenerator продолжает отбрасывать соединения, отказано?

Ответы [ 3 ]

0 голосов
/ 23 декабря 2011

Google 'TIME_WAIT' - возможно, вам не хватает доступных сокетов.

0 голосов
/ 23 декабря 2011

Если вы думаете о ресурсах, попробуйте

ulimit -a

Это покажет ограничение ресурсов вашего процесса.Вывод выглядит примерно так:

  core file size (blocks)   1000000
  data seg size (kbytes)    unlimited
  file size (blocks)            unlimited
  max memory size (kbytes)  unlimited
  stack size (kbytes)           8192
  cpu time (seconds)            unlimited
  max user processes            unlimited  (1)
  pipe size (512 bytes)         8
  open files                    1024
  virtual memory (kbytes)   2105343

, здесь вы проверяете открытые файлы.Который описывает предел fd (включая сокет, канал, файл, ...), который разрешается открывать с помощью linux.

Вы можете изменить это с помощью ulimit -n

Убедитесь, что у вас такая же проблема.В противном случае это бесполезно.

ulimit ref: http://ss64.com/bash/ulimit.html

0 голосов
/ 23 декабря 2011

Вы можете включить модуль mod_status и посмотреть, сколько рабочих используется и т. Д.

...