У меня есть приложение J2EE, размещенное на сервере Linux VPS. Я использую nginx в качестве веб-сервера и tomcat6 в качестве сервера приложений. Иногда веб-сайт продолжает ждать загрузки, а иногда даже выдает ошибку 504 bad gateway nginx. Во время этого простоя в несколько минут (обычно 3-5 минут), если я пытаюсь получить доступ к серверу через SSH, я получаю ошибку тайм-аута соединения. Когда через несколько минут веб-сайт начал работать, я заметил, что tomcat, nginx все еще работают с тем же идентификатором процесса, что и раньше. Мне не нужно перезапускать tomcat или nginx, он начинает работать сам. Кроме того, когда сайт снова работает, я также замечаю, что SSH-соединение с сервером также успешно.
Я не уверен, в чем именно заключается проблема? Это проблема с подключением к серверу или это какая-то ошибка в моей конфигурации? Приветствуются любые идеи.
Вы используете Xen VPS с 1 ГБ ОЗУ и 2 ГБ подкачки, и ваш VPS-провайдер имеет такое же соотношение ОЗУ и подкачки для всех других клиентов, включая 256 МБ подкачки для 128 МБ ОЗУ для клиентов самого нижнего уровня.
Это может показаться очень высоким соотношением подкачки к оперативной памяти для хостера VPS, особенно если они предлагают низкие уровни, такие как 128 МБ ОЗУ с 256 МБ подкачки, которые неизменно исчерпывают оперативную память при использовании ничего не подозревающими новичками.
Похоже, что полученная вами ошибка Bad Gateway вызвана слишком большой задержкой ответа вашего J2EE-приложения, которая может быть вызвана всей происходящей подкачкой.
Лучше всего проверить производительность сервера. Вероятно, вам следует начать с запуска dd
для проверки пропускной способности диска, а затем с помощью какого-нибудь инструмента тестирования UNIX.