Digital Ocean Droplet은 트래픽 없이 CPU 사용량을 100%로 급증시킵니다.

Digital Ocean Droplet은 트래픽 없이 CPU 사용량을 100%로 급증시킵니다.

나는 최근에 새로운 Droplet(가장 기본적인 것)을 설정하고 pm2를 사용하는 매우 가벼운 Express 서버로 반응 앱을 실행했습니다(서버는 0% CPU 사용량과 90MB RAM으로 16시간 동안 실행되었습니다).

서버를 시작했는데 CPU가 약 3%에 문제가 없었으며 웹사이트를 테스트하고 비디오 등을 로드하고 있었습니다. 하룻밤 동안 그대로 두었고 통계를 로드한 후에는 물방울이 지난 10시간 동안 CPU를 100% 사용하고 있는 것으로 나타났습니다. 대략 3%에서 100%까지 몇 분 안에 급증하는 것을 볼 수 있었습니다.

내 웹사이트에는 아직 트래픽이나 도메인이 없으므로 사용이 없었습니다. 실제로 대역폭은 전체 시간 동안 0mb/s였습니다.

방금 pm2 서버를 다시 시작했는데 CPU가 다시 떨어지는 것 같습니다. 드롭릿이 사용되지도 않았는데 아무 이유 없이 CPU 사용량이 100%로 점프하는 이유는 무엇입니까?

답변1

노드를 업데이트하면 문제가 해결된 것 같습니다. 내 물방울의 노드는 5V 뒤에 있었습니다. 업데이트하면 서버가 문제 없이 몇 시간 동안 실행됩니다.

편집: 한동안 실행한 후에도 여전히 무작위로 급증합니다. sshd 명령이 문제를 일으키는 것 같은데 해결 방법을 찾지 못했습니다.

편집: 원인: 노드 가져오기 기능이 문제를 일으키는 것 같습니다. 이 요청을 제거하고 백엔드 URL을 호출하지 않고 UI에서 직접 수행하면 CPU 문제가 해결되는 것 같습니다. 요청을 UI로 다시 파이핑할 때 노드 코드 어딘가에서 누출이 있을 수 있습니다.

답변2

나는 지금 같은 문제가 있었고 해결책을 찾았습니다. 그것이 당신에게 효과가 있기를 바랍니다. 실제로 누군가가 내 웹사이트를 무차별 대입 공격으로 공격하고 있었는데 왜 내 웹사이트가 다운됐고 그래프에는 CPU 사용량이 100%로 표시되나요?

먼저 어떤 애플리케이션이 사용량이 많은지 확인하고 "맨 위" 실시간 CPU 사용량이 표시됩니다. 제 경우에는 PHP-fpm이 95% 사용량을 차지하고 있었습니다.

이제 Nginx 로그 파일을 확인해야 합니다. "sudo tail -f /var/log/nginx/access.log" 오류 또는 잘못된 게이트웨이 액세스 세부 정보가 표시됩니다. 이제 차단하려면 여러 번 반복되는 IP 주소를 복사해야 합니다.

다음 명령을 사용하여 IP를 차단할 수 있습니다.iptables -I 입력 -s 35.186.156.199 -j DROP"

이 문제가 해결되기를 바랍니다.

관련 정보