У меня есть Netbeans 8.0.2, установленный на Ubuntu 15.04, который включает контейнер GlassFish 4.1 EE.GlassFish 4.1 Медленный сигнал Servlet от Localhost (NetBeans)
По какой-то причине, после того, как обеспечить мои resolv.conf
и hosts
файлов были настройки должным образом, доступ динамического контента, такие как servlet
который извлекает данные из базы данных SQL, ужасно медленно.
Однако доступ к статическим страницам JSP возвращается менее чем за 1 мс.
Pinging server on 127.0.0.1 или localhost возвращается в 0.038ms или меньше, что следует ожидать, поэтому я не думаю, что проблемы с разрешением DNS, общие с Linux и localhost, здесь виноваты.
Для ударов я загрузил сервер GlassFish 4.1 со своего сайта и установил NetBeans для его развертывания, и получил те же результаты. Кроме того, я также попытался вручную развернуть мои WAR-файлы, что также привело к очень медленному времени отклика от динамического контента/сервлетов.
Что меня за то, что с такой же настройкой и конфигурациями у меня нет таких проблем в Windows.
Так что в итоге:
- Статическое содержимое рассасывается и реагирует менее 1 мс.
- Динамический контент через сервлеты ужасно медленный, до 5 минут.
Я действительно смотрел и видел, был ли это мой код. И нет, это не так. Он отлично работает на Windows и Windows Server. Он даже отлично работает, когда сервер находится в CentOS и указывает на него, т. Е. Вы просматриваете URL-адрес, а не через localhost.
Для уточнения, эта проблема возникает даже на сервлеты, которые не обращаются внешние ресурсы, такие как сервлет, что только добавляет несколько строк HTML, или пересылает запрос на статической странице JSP.
Как вы попытались отладить это? Вы можете попробовать добавить отладочные заявления через части вашего кода, которые попадают в запрос, чтобы вы могли видеть, где происходит латентность.Существует большая вероятность того, что это проблема в конце базы данных - либо связь с/из БД, либо сама БД является медленной. – Mike
@Mike Это была первая мысль, которую я имел. Самый простой способ это сделать - создать сервлет, который ничего не делал, кроме добавления нескольких строк HTML на страницу, без доступа к какой-либо базе данных. Результаты были одинаковыми. К сожалению, база данных не виновата. –