Поиск и устранение неисправностей высокого Sy Использование ЦП

Я выполняю Супермикро сервер с Ubuntu 14.04.4 LTS. У нас есть приложение, которое истратило sy процессорное время, в то время как едва касающееся пространство пользователя. Я запускаю то же приложение на более старых аппаратных средствах с Ubuntu 12.04.4, LTS и CPU намного более сбалансированы между пользователем и системой. Я использовал strace для получения некоторой информации о производительности о процессе, и я вижу, что epoll_wait поднимает 98% системного процессорного времени. Я не могу найти к большой информации об этом вызове, и что я нахожу, что не понимаю. Кто-либо может пролить некоторый свет на это?

1
задан 24 February 2016 в 21:34

2 ответа

Вы видите, где ЦП используется еще в большем количестве деталей с помощью "перфекта":

перфект Установки:

sudo apt-get install linux-tools-$(uname -r)

Затем, запускают программу, которая использует все ресурсы ЦП

Затем, выполненный перфект, и получите все события планирования для, говорят 60 секунд:

sudo perf record -a sleep 60

, После того как это завершилось, можно получить журнал всего использования событий перфекта:

sudo perf script > perf.log

и можно посмотреть на это, или лучше, можно в интерактивном режиме посмотреть на использование горячих точек ЦП:

sudo perf report
2
ответ дан 7 December 2019 в 13:48

Если можно получить вывод от трассировки программы с помощью-e epoll_wait, опция только для получения epoll syscall затем добавляют, что к этому вопросу мы можем затем выяснить то, что происходит.

epoll_wait системный вызов в основном ожидает некоторых epoll событий, и высокое потребление ресурсов ЦП на epoll_wait системных вызовах могло означать или что обеспеченный тайм-аут является слишком маленьким, и это вызывает много десятков тысяч вызовов epoll_wait если в цикле, или что существует действительно большое появление событий, на котором ожидает epoll_wait, и код обрабатывает. С другой стороны, это могла быть ошибка в программе, и это вращается на некоторой ошибке. Типичные состояния ошибки были бы EINVAL, куда недопустимый параметр передается системному вызову или EBADF, где недопустимый дескриптор файла используется (возможно от неудавшегося открытого)

Так, strace программа снова:

strace -f -e epoll_wait program-name >& strace.log

и видят, какие epoll_wait отказы происходят (возврат-1). Если никакие отказы не происходят, то проверьте, происходит ли тайм-аут (0), или дескриптор файла становится готовым к вводу-выводу (возврат> 0).

0
ответ дан 7 December 2019 в 13:48

Другие вопросы по тегам:

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