Назад | Перейти на главную страницу

Высокая загрузка ЦП без полезной информации от верхней команды

За последние 2 дня у меня начались проблемы с сервером, на котором работает несколько пользователей. Сервер - это OpenVZ VPS. Обычно при высокой загрузке ЦП я всегда использую top команду, чтобы узнать причину. Но для этого сервера я не получаю никакой полезной информации от top команда. Ниже приведен пример снимка экрана с проблемой, с которой я столкнулся.

Как видно на скриншоте, %CPU столбец почти всегда равен нулю для всех процессов, и практически большую часть времени я вижу, что все значения равны нулю, но загрузка ЦП достигла 10 ядер!

Я совершенно потерялся и не знаю, что делать, чтобы выяснить причину. Поэтому я хотел бы спросить, есть ли у кого-нибудь представление о возможных причинах, с которыми я сталкиваюсь? Может быть, из-за проблем с сервером?

Спасибо за любое предложение!

Редактировать:

Обратите внимание, что этот снимок экрана делается только при высокой нагрузке. Это происходит каждые несколько часов и длится около 20 минут. Нормальное использование составляет всего около 0,0-0,2 ядра. Ниже приведен пример нормального использования.

Дальнейшее обновление

Только что это случилось снова, вот скриншот предлагаемых команд

Мне жаль, что я новичок в этом, но, если я правильно понимаю, с использованием диска нет ничего плохого, использование io очень низкое.

Последнее обновление

Я пробовал использовать предложенные методы, используя vmstat, ps приведены в ответах и ​​комментариях, но не смогли найти полезной информации. Когда происходит всплеск, я даже останавливаю apache, mysql, но это не помогло. Наконец я связался с провайдером VPS и попросил перейти на другой узел. Он сказал мне, что знает о проблемах с узлом, который в последнее время подвергается серьезным злоупотреблениям со стороны злоумышленников, и работает над их устранением. Так что, полагаю, мне сейчас не нужно ничего делать со своей стороны. Тем не менее, я хотел бы поблагодарить всех участников, которые внесли свои предложения, что сделало эти вопросы и ответы полезными для использования в будущем!

Около 30% процессорного времени, похоже, тратится на WAIT, а ваша (не менее 1 минуты) нагрузка составляет очень высокая.

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

Вы также, кажется, меняете местами, хотя у вас есть разумный объем свободной памяти, поэтому я бы посмотрел, какие настройки vm.swappiness (с использованием sysctl) может сделать для вас. ОЗУ быстрее, чем подкачка, поэтому, если вы можете ее использовать, я бы стал.

Если все остальное не удается, посмотрите, что может сделать для вас зондирование sysrq.

Если более наглядный обзор может вам помочь, я бы, возможно, посмотрел на netdata firehol (https://netdata.firehol.org/), если у вас нет уже существующего решения.

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

Средняя нагрузка составляет не количество используемых ядер. Это связано с количеством процессов на ЦП или ожиданием. Когда средняя загрузка намного превышает количество ядер, это может указывать на то, что система менее отзывчива после всего ожидания.

Вы используете систему на основе контейнера. Для хоста есть только одно разделяемое ядро, на котором вы запускаете несколько процессов. Вы увидите всплеск нагрузки, когда другие контейнеры на хосте будут работать, но он не будет отражен в вашем списке процессов.

Вам следует установить atop. Это более информативно.

Ваш ЦП используется для операций ввода / вывода. WA - ждет и больше 30%. Я вижу, что полезнее процесс mysqld. Он съедает процессорное время больше других.

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

Если вы используете виртуальную машину, возможно, другая виртуальная машина или хост-система очень надежно использует диск. Также возможно, что на вашем диске есть битые сектора. Проверьте это, прочитав атрибуты SMART с помощью команды smartctl -a на хост-сервере.