У меня есть сервер Linux, на котором я установил Java.
Иногда, и только иногда, когда мой сайт посещает большое количество посетителей, сайт зависает.
Когда я открываю терминал и ввожу команду «top», чтобы увидеть, что происходит, я вижу это »Java
"процесс съедает процессор! 400%.
Я тоже пробовал ps aux
команда, и видно, что команда от usr / bin / java
У меня мало опыта в решении таких проблем, поэтому я обращаюсь к вам, ребята, за помощью.
У меня установлен контейнер java (Причал) который я должен иметь, чтобы использовать СОЛР (поисковая система), интегрированная в мой сайт.
Я могу запускать и останавливать SOLR:
etc/init.d/solr stop
Но это не удалило java-процесс из команды «Вверх». По-прежнему java ел 400% CPU.
Есть ли другие способы перезапуска только java?
Это случилось со мной дважды, и каждый раз я перезагружал все свои серверы, и все в порядке.
Если вам нужно больше информации, дайте мне знать!
Если вы остановите процесс solr, а java-процесс все еще запущен, значит, на вашем сервере есть другой java-процесс. Первым шагом является документирование всех запущенных процессов Java. Хорошим инструментом для этого в Unix является ps
инструмент. Попробуй это:
$ ps auxwww | grep java
Этот вывод должен показать вам все запущенные java-процессы и выполняемые команды. Попробуйте это до и после остановки solr.
Второй вопрос: «Какой из этих java-процессов съедает столько ресурсов процессора»? Вам может потребоваться остановить процесс причала в дополнение к процессу solr. Кроме того, вам никогда не придется перезапускать сервер Linux только потому, что один из процессов работает неправильно. Вы также можете использовать kill
команда, чтобы остановить процесс, если вы теперь это идентификатор процесса, который вы можете получить из любого top
или ps
.
В краткосрочной перспективе может быть хорошей идеей установить на вашем компьютере какой-то «сторожевой» скрипт, который поможет в таких ситуациях. Например, monit
может использоваться для автоматического перезапуска службы или процесса, когда они потребляют определенное количество ресурсов ЦП.
Мне жаль, что в долгосрочной перспективе у вас проблемы с производительностью. Вам нужно как минимум взглянуть на перенастройку solr и jetty. Вам также может потребоваться настроить сборку мусора и, возможно, добавить дополнительное оборудование. В Интернете есть много информации по этим темам, и я с сожалением должен сказать, что этот процесс может быть несколько сложным.
Удачи!
Том Перл
Если ЦП загружается на максимум, а время отклика падает, то первое, на что я обращаю внимание, - это управление кучей в java - вероятно, он выполняет множество крупных коллекций - и самый быстрый способ решить проблему - просто дать контейнер больше памяти для запуска.
Это не совсем то место, чтобы задавать вопрос об отладке программы. Если Solr - единственное запущенное приложение Java, вам обязательно нужно проверить, как часто обновляется ваш индекс Lucene и сколько поисковых запросов вы выполняете в секунду, когда сервер запускается, перегружается.