Рейтинг:4

Этот сервер перегружен (скриншоты htop)

флаг bd

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

флаг jp
Да, он перегружен, средняя нагрузка слишком высока для двух процессоров
Jack0220 avatar
флаг bd
Спасибо. Вы должны сделать это ответом, чтобы получить кредит. @AlexD
Criggie avatar
флаг in
@ Jack0220 Jack0220 Это физическая машина или виртуальная? Я спрашиваю, потому что 2-ядерная физическая машина, вероятно, сейчас немного устаревает (таким образом, замена становится более важной), в то время как виртуальную часто можно увеличить с помощью не более чем перезагрузки (и, возможно, более высокой ежемесячной платы, если вы находитесь в AWS или аналогичный)
Craig Estey avatar
флаг kr
У вас много потоков/процессов. _Если_ вы можете реструктурировать приложение/сервер и каждый запрос является "легким", вы можете реализовать "пул потоков". То есть накладные расходы на создание/присоединение к потоку выше, чем на его обработку. Сервер определяет пул из N потоков (например, где N — количество ядер * 2). Сервер запускает потоки. Он может ставить запросы в общую очередь. Каждый поток берет запрос из очереди, обрабатывает его, а затем зацикливается/засыпает в очереди, ожидая дополнительной работы. В противном случае просто "потратить деньги" ;-)
James avatar
флаг in
"Этот *сервер* перегружен"? Невозможно сказать по предоставленным данным. Какое программное обеспечение работает, и сильно ли оно зависит от процессора и т. д. и т. д. Все работает медленно или все в порядке на пике? Так что требуемые ресурсы удовлетворены, хотя и с доступными ресурсами на максимуме. Последнее «обычно» не очень хорошо, так как у вас должны быть некоторые накладные расходы, когда что-то требуется больше, чем запланировано, или обычно требуется и т. Д. «Этот * ЦП * перегружен» нет, это при максимальном использовании.
Рейтинг:12
флаг jp

Ваш сервер имеет только два процессора и LA (средняя загрузка) в диапазоне 10-15. Это означает, что запущенные процессы требуют больше процессорного времени, чем процессоры могут обработать. Вы можете прочитать гораздо больше о Лос-Анджелесе в эта статья Брендан Грегг.

Обратите внимание, что LA — это всего лишь одна метрика, и даже если ваша система не получает столько процессорного времени, сколько она хочет, все же возможно, что она получает достаточно процессорного времени, чтобы достаточно хорошо обслуживать запросы конечных пользователей. Вам нужно проверить другие показатели, прежде чем принимать какие-либо решения об этом сервере, но если ваши пользователи уже жалуются, решение очевидно — получите экземпляр с большим количеством процессоров.

Jack0220 avatar
флаг bd
Я ценю это. Система продолжает пикировать. В целом с нагрузкой справляется, но не вовремя. Сервер часто не отвечает или отвечает слишком поздно. Вы подтвердили мои подозрения.
marcelm avatar
флаг ng
_"Ваш сервер имеет только два ЦП и LA (средняя загрузка) в диапазоне 10-15."_ - И тем не менее, 2 из 3 скриншотов показывают, что загрузка ЦП составляет около 60%. Я бы не стал так быстро судить, что сервер привязан к процессору. Это может быть связано с вводом-выводом. Я также вижу относительно высокую нагрузку на память, которая может не помочь ситуации с вводом-выводом. И в любом случае высокая нагрузка не означает, что система перегружена сама по себе. Хорошо загруженный сервер, не чувствительный к задержкам (например, почтовый), может прекрасно работать при высоких нагрузках. Это зависит от ситуации.
Guntram Blohm avatar
флаг in
Однако в режиме D нет ни одного отдельного процесса, и (часть) redis, похоже, потребляет 100% ЦП (что означает, что он однопоточный, иначе он превысит 100%). Это может означать, что все остальное ждет (весьма перегруженного) redis, и добавление ядер здесь мало поможет. Я бы проверил файлы конфигурации и журнала Redis, прежде чем просто добавить больше ядер для решения проблемы.
флаг jp
@marcelm Я согласен с тем, что может быть значительная нагрузка ввода-вывода из-за работы `redis-rdb-bgsave`, но трудно сказать, поскольку нет доступной статистики iowait и нет процессов с состоянием «D». Также обратите внимание, что на каждом снимке экрана 1 минута LA меньше 15 минут LA, так что это слишком долго для моментального снимка размером 2 ГБ.Кроме того, большая часть процессорного времени тратится на процесс `chirpstack-network-server`.
флаг jp
Поскольку система работает на AWS, я бы рекомендовал переместить `redis` в управляемый экземпляр ElastiCache Redis, но это приведет к дополнительной сетевой задержке, которая может повлиять на производительность системы.
Jack0220 avatar
флаг bd
Спасибо всем за дополнительный вклад. Это сетевой сервер LoRa, чувствительный к задержкам. Есть нисходящие ссылки в ответ на восходящие, которые должны быть доставлены очень быстро, и я вижу, что часто они приходят слишком поздно, а иногда и вовсе не приходят. Аплинки являются спорадическими, поэтому возможно, что их несколько происходят одновременно, выходя за пределы системы. @Марсельм Гунтрам Блом
Рейтинг:10
флаг mx

Дайте определение «перегружен».

Если вы просто смотрите на среднюю нагрузку, то да, она перегружена (примерно в 5-7,5 раз). Тем не менее, средняя загрузка является разумной метрикой, которую можно использовать только в том случае, если ваша рабочая нагрузка в значительной степени параллельна и в основном привязана к ЦП. Средняя загрузка по существу отслеживает среднее количество процессов, которые мог пробег за последние 1/5/15 минут.

Однако, судя по двум вашим снимкам экрана, мгновенная загрузка ЦП не всегда составляет 100% от того, на что способна система. Это, в сочетании с высокой средней нагрузкой, означает, что необходимо запустить множество процессов, но они выполняются быстро, а затем завершаются. Это достаточно нормально для системы, предоставляющей сетевые службы, поскольку большинство сетевых служб нет Привязанный к процессору, но вместо этого привязанный к вводу-выводу. Это означает, что средняя нагрузка не является хорошей метрикой для определения использования ресурсов в системе.

На что вам действительно следует обратить внимание (и на что вы действительно должны обращать внимание в первую очередь) Любые network service) — это показатели производительности самой службы.В большинстве случаев релевантными являются измерения задержки для различных типов запросов, обслуживаемых службой (и, более конкретно, вы обычно хотите заботиться о средней задержке и одном из 95-го или 99-го процентиля или пиковой задержки). хтоп просто не может отследить это для вас, вам нужно посмотреть на другой инструмент, такой как Сетевые данные (отказ от ответственности, я работаю в Netdata) или Прометей.

Но даже лучше этого: пользователи сообщают о проблемах? Если ответ отрицательный, о проблемах не сообщается, то, вероятно, не имеет значения, «перегружен» сервер или нет, потому что все работает достаточно хорошо.

флаг jp
связанные с сетью процессы не влияют на «LA», поэтому вы не получите «LA»> «количество ЦП» в системах, связанных с сетевым вводом-выводом. Когда `LA` > `n CPUs`, это означает, что есть много процессов, ожидающих процессора, но не могущих запуститься, а не то, что «они работают быстро, а затем завершаются» (в этом случае вы получите LA примерно равное количество процессоров) . Высокая LA означает, что система **привязана** к процессору или дисковому вводу-выводу. «Мгновенная загрузка ЦП не всегда составляет 100%» означает, что система прошла пик нагрузки, вы можете увидеть это на 1 м LA, что составляет менее 5 и 10 минут LA.
Jack0220 avatar
флаг bd
Да есть проблемы с конечным сервисом, сервер не всегда достаточно быстро отвечает. Приходят восходящие каналы, и некоторые из них требуют в ответ нисходящих каналов. Задержка нисходящего канала иногда превышает 5 секунд, что слишком поздно (это система LoRa). Я посмотрю на netdata, это выглядит хорошо. Проблема в том, что люди, ответственные за этот сервер, помещают каждый сервер в один и тот же экземпляр, а не распределяют его. Вероятно, сначала это сработало, но по мере роста системы это становится неустойчивым. Большое спасибо всем за хорошие идеи!

Ответить или комментировать

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