Недавно я установил новый Droplet (самый простой) и запустил приложение React с очень легким сервером Express с pm2 (сервер работал 16 часов с 0% загрузкой ЦП и 90 МБ ОЗУ).
Я запустил сервер, проблем не было, загрузка ЦП составляла около 3%, я тестировал веб-сайт, загружал видео и т. д. Я оставил его на ночь, и как только я загрузил статистику, она показала, что сервер использовал ЦП на 100% в течение последних 10 часов или около того, и я мог видеть скачок, произошедший в течение пары минут с 3% до полных 100%.
Обратите внимание, что на моем сайте нет трафика, как и на домене, поэтому использования не было. Фактически пропускная способность была на уровне 0 Мбит/с все время.
Я только что перезапустил сервер pm2, и похоже, что процессор снова падает. Почему дроплет без причины перескакивает на 100% использования процессора, когда он даже не используется?
решение1
Кажется, обновление узла решило проблему. Узел на моем дроплете отставал на 5v. Обновляю, сервер работает уже пару часов без проблем
Редактировать: После запуска в течение некоторого времени он все еще внезапно повышается. Похоже, что команда sshd вызывает проблему, и я не нашел способа ее исправить
Редактировать: Причина: Похоже, что проблема в функции node get. Удаление этого запроса и выполнение его напрямую из пользовательского интерфейса (без вызова URL-адреса бэкэнда) похоже исправляет проблему с процессором. Может быть утечка где-то в коде узла при передаче запроса обратно в пользовательский интерфейс
решение2
У меня была та же проблема, теперь я нашел решение, надеюсь, оно вам подойдет. На самом деле, кто-то атаковал мой сайт методом подбора паролей, так почему же мой сайт не работал, а график показывает загрузку ЦП на 100%?
Прежде всего, проверьте, какое приложение потребляет больше всего ресурсов, поэтому введите команду "вершина" он покажет загрузку ЦП в реальном времени. В моем случае PHP-fpm использовал 95% ресурсов.
Теперь вам нужно проверить файл журнала Nginx.sudo tail -f /var/log/nginx/access.log" он покажет ошибку или сведения о плохом доступе к шлюзу. Теперь вам нужно скопировать IP-адрес, который повторяется много раз, чтобы заблокировать его.
Вы можете заблокировать IP, используя эту команду "iptables -I ВВОД -s 35.186.156.199 -j ОТБРОС"
Надеюсь, эта проблема будет решена.