На сервере EC2, работающем на node.js, как я могу уменьшить время соединения TCP? - PullRequest
4 голосов
/ 11 ноября 2011

При профилировании моего приложения я заметил, что на панели Firebug Net время «соединения», то есть время ожидания соединения TCP, постоянно составляет около 70–100 мс. Смотрите изображение ниже:

notice

Конечно, в общей схеме 100 мс - это не долго, но я видел другие сервисы, которые отвечают со временем соединения 0 мс. Так что, если другие серверы могут, я тоже смогу.

Есть какие-нибудь мысли о том, как я мог бы даже подумать об этом?

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Я бы начал с того, чтобы посмотреть, делает ли iptables что-нибудь, что может помешать.Кроме того, если бы вы работали с балансировщиком нагрузки ELB (или любым другим балансировщиком нагрузки), я бы удалил его из микса и посмотрел, все ли у вас время соединения больше, чем ожидалось.

Вы могли быТакже отдельно установите lighttpd или Apache и посмотрите, что произойдет.Если вы получите меньшее время соединения, чем это будет указывать на вашу сборку Node.js.Хотя не окончательно.

0 голосов
/ 01 марта 2012

Я бы предложил простой тест, чтобы проверить, связана ли эта проблема с вашим сервером:

  1. Запустить другой экземпляр в той же зоне доступности, что и ваш сервер.
  2. Оцените ваш сервер с помощью Apache Benchmark из второго экземпляра:

    ab -c 1 -n 20000 http://<private_server_instance_ip>:<port>/<URL>

    Здесь важно указать частный IP-адрес, а не частный или общедоступный DNS, чтобы отбросить эффекты разрешения имен доменов.

  3. Проверьте среднее время, затрачиваемое на запрос: если это будет около 1 мс - описанная проблема не на вашем сервере.

Сравнительный анализс FireFox BTW может быть не самой лучшей идеей, потому что результаты могут зависеть от ряда обстоятельств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...