Высоко загрузите среднее число, низкое использование ЦП - почему?

Можно удалить symblinks руками, нет никакой проблемы, чтобы сделать тот этот путь, если Вы знаете то, что Вы делаете.

78
задан 23 December 2016 в 18:53
6 ответов

При дальнейшем исследовании выясняется, что проблема с производительностью в основном связана с большим количеством сетевых вызовов между двумя системами (Oracle SSXA и UCM). Вызовы бывают быстрыми, но многочисленными и сериализованными, отсюда и низкая загрузка ЦП (в основном ожидание ввода-вывода), высокая средняя нагрузка (много вызовов, ожидающих обработки) и особенно длительное время отклика (накопление небольшого времени отклика).

Спасибо за понимание этой проблемы!

40
ответ дан 28 November 2019 в 19:27

Когда вы говорите «Высокая средняя нагрузка», я предполагаю, что вы имеете в виду, что prstat показывает «среднюю нагрузку» внизу выходных цифр

Total: 135 processes, 3167 lwps, load averages: 54.48, 62.50, 63.11

. Эти числа похожи на те, что top предоставляет и, вероятно, означает средний размер очереди запущенного процесса. Это не процент используемого процессорного времени, а то, сколько «вещей» беспокоят ЦП на время для работы. По общему признанию, они выглядят довольно высокими, но все зависит от приложения, которое вы запускаете; процессы могут фактически не делать много, как только они получат свой слот. См. здесь для хороших объяснений относительно top.

Я не знаком с WebLogic, но я заметил, что, как правило, с Apache Tomcat многие потоки Java могут быть созданы одновременно для того, что выглядит как небольшое количество запросов . Это могло быть причиной высоких средних значений нагрузки. Убедитесь, что вы используете пул соединений, где это необходимо для подключения к бэкэнду, и рассмотрите возможность увеличения количества незанятых потоков, доступных вашему приложению для обработки подключений (не знаю, как вы это делаете в WebLogic; Tomcat имеет пул потоков для каждого соединителя или пул потоков общего исполнителя). Если вы этого не сделаете, то для обработки запросов могут быть созданы новые потоки.

Что касается производительности, вам необходимо определить, какая часть вашего приложения страдает. Это обработка, которая происходит на стороне WebLogic / Java, доступ к базе данных, поиск DNS (если они по какой-то причине выполняются ...), проблемы с сетью или что-то еще в ОС.

99% в большинстве случаев это будет ваш код и то, как он взаимодействует с базой данных, которая задерживает работу. Затем будет настройка веб-приложения. После этого вы будете работать над тем, чтобы выжать из своего приложения последние миллисекунды, или над тем, чтобы обеспечить более высокий уровень параллелизма с тем же оборудованием. Для более тонкой настройки производительности вам потребуются метрики.

Для Java я бы предложил установить Java Melody . Он может предоставить много информации о том, что делает ваша программа, и помочь сузить круг вопросов, на которые она тратит время. Я использовал его только с Tomcat, но он должен работать нормально с любыми контейнерами / сервлетами Java EE.

Существует несколько способов настройки Java, поэтому ознакомьтесь с их рекомендациями по производительности (я уверен, что вы, наверное, have) и убедитесь, что вы устанавливаете правильный размер кучи и т. д., подходящий для вашей программы. Java Melody может помочь вам отследить размер кучи Java. повторного потребления, а также того, насколько усердно работает сборщик мусора / как часто он прерывает вашу программу для очистки объектов.

Я надеюсь, что это было полезно. Если вы предоставите дополнительную информацию, я, возможно, смогу обновить этот ответ и отточить его в большей степени для ваших нужд.

32
ответ дан 28 November 2019 в 19:27

Сегодня была такая же проблема. После некоторых исследований и диагностики я понял, что на моем маленьком VPS заканчивается диск .

В командной строке / приглашении (Linux / Unix) введите

df -h

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

7
ответ дан 28 November 2019 в 19:27

Еще один полезный инструмент, который поможет в этой ситуации, - это nmon.

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

Если это контент, который нельзя кэшировать, я бы рекомендовал разместить несколько серверов за балансировщиком нагрузки, таким как haproxy, в режиме TCP для распределения нагрузки.

4
ответ дан 28 November 2019 в 19:27

В качестве побочного примечания, средняя загрузка также включает в себя вещи, ожидающие активности диска (то есть беспокоящие диск), а также ожидающие обработки процессора, это сумма обоих ... так что у вас может быть проблемы в одном или другом.

См. http://en.wikipedia.org/wiki/Load_ (computing) "Linux также включает [в свою среднюю нагрузку] процессы в состояниях непрерывного сна (обычно ожидание активности диска) "

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

Похоже, что, по крайней мере, в моем В этом случае иногда потоки / процессы, ожидающие ввода-вывода, отображаются в средней нагрузке, но не , а не вызывают увеличение столбца "await". Но они все еще привязаны к вводу-выводу.

25
ответ дан 28 November 2019 в 19:27

Чтобы добавить к этому, некоторые специальные инструменты Solaris, которые не были упомянуты и полезны при отладке таких проблем, - это intrstat, mpstat и lockstat. Испытывая подобную проблему раньше на хосте, на котором выполнялась большая нагрузка на ETL, mpstat обнаружил большое количество прерываний, связанных с большим количеством операций ввода-вывода, которые намекали на проблему.

В то время на T4-4 с помощью mpstat мы увидели, что vcpus обрабатывает более 30000 прерываний за короткий цикл мониторинга, после чего производительность начала ухудшаться. В этом случае единственным обходным решением было использование большего количества ЦП, однако впоследствии была проведена работа по улучшению кода.

Брендан Грегг много писал о производительности, особенно о вводе-выводе, на протяжении многих лет и заслуживает поиска если вы хотите узнать больше.

2
ответ дан 28 November 2019 в 19:27

Теги

Похожие вопросы