node서비스 CPU가 너무 높으면 어떻게 해야 하나요? 확인하는 방법? 다음 문서에서는 노드 서비스 CPU가 너무 높은 문제를 해결하는 방법을 정리하고 공유하겠습니다. 도움이 되기를 바랍니다.
동료가 과도한 CPU 문제를 살펴보도록 도와주세요.
결국 우리는 다음과 같이 문제 해결 아이디어를 요약했습니다. 추가를 환영합니다
일부 문제는 인스턴스를 다시 시작하면 해결될 수 있습니다.
먼저 인스턴스를 다시 시작하는 것은 서비스를 먼저 사용할 수 있도록 하기 위해 필요한 단계입니다. 후속 CPU가 여전히 너무 빠르게 급증하는 경우 먼저 코드 롤백을 고려해야 할 수 있습니다. 급증이 빠르지 않으면 롤백하지 않고 최대한 빨리 문제를 해결할 수 있습니다
명령 1: top
top
[root@*** ~]# top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 680 root 20 0 2290976 168176 34976 S 30.3 2.0 103:42.59 node 687 root 20 0 2290544 166920 34984 R 26.3 2.0 96:26.42 node 52 root 20 0 1057412 23972 15188 S 1.7 0.3 11:25.97 **** 185 root 20 0 130216 41432 25436 S 0.3 0.5 1:03.44 **** ...
命令二: vmstat
[root@*** ~]# vmstat 2 procs -----------memory---------------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233481328 758304 20795516 0 0 0 1 0 0 0 0 100 0 0 0 0 0 233480800 758304 20795520 0 0 0 0 951 1519 0 0 100 0 0 0 0 0 233481056 758304 20795520 0 0 0 0 867 1460 0 0 100 0 0 0 0 0 233481408 758304 20795520 0 0 0 20 910 1520 0 0 100 0 0 0 0 0 233481680 758304 20795520 0 0 0 0 911 1491 0 0 100 0 0 0 0 0 233481920 758304 20795520 0 0 0 0 889 1530 0 0 100 0 0
vmstat
먼저 2초마다 수집을 의미하는 vmstat 2 명령어를 살펴보세요
rrreee
procs r: 실행 중인 프로세스가 많고 시스템이 매우 바쁩니다.
bi/bo: 디스크에 기록되는 데이터의 양이 약간 크면 기본적으로 걱정할 필요가 없습니다. 10M 미만이면 기본적으로 2M 미만이면 정상입니다.
cpu us: 서비스 피크 기간에는 50% 이상이면 허용됩니다. 오랫동안 최적화를 고려할 수 있습니다.
cpu sy: 여기서 us + sy의 기준 값은 80%입니다. us + sy가 80%보다 크면 CPU가 부족할 수 있음을 나타냅니다.
cpu wa: 열은 IO 대기에 의해 점유된 CPU 시간의 백분율을 표시합니다. 여기서 wa의 기준값은 30%입니다. wa가 30%를 초과하면 IO 대기가 심각하다는 의미입니다. 이는 디스크에 대한 랜덤 액세스가 많기 때문일 수도 있고 대역폭 병목 현상 때문일 수도 있습니다. 디스크 또는 디스크 액세스 컨트롤러(주로 블록 작업)
참조 링크: https://www.cnblogs.com/zsql/p/11643750.html
를 살펴보세요. 인스턴스를 재시작해도 문제가 해결되지 않았으며 노드 프로세스에 문제가 있는 것으로 판단됩니다. 그렇다면
온라인 커밋을 확인하고 코드 차이점을 확인하여 문제를 찾을 수 있는지 확인하세요
이 작업 방법은 다른 기사와 유사합니다.SSR 서버측 메모리 누수 문제를 빠르게 찾는 방법은
노드 --inspect를 사용하여 서비스를 시작합니다.
온라인 환경을 로컬로 시뮬레이션하려면 빌드된 코드를 사용하면 직접 빌드가 작동하지 않을 수 있습니다. 환경 변수를 제어해야 하며 추악한 압축을 꺼야 합니다.
CPU 프로파일러 생성
예를 들어 다운스트림 RPC는 로컬에서 격리되어 있으므로 프로필을 생성하는 코드만 추가할 수 있습니다nodejs.org/docs/latest…
프로필 파일을 가져온 후 Chrome으로 엽니다. devtool
프로파일러와 코드 차이점을 결합하여 원인을 찾습니다
프로필 파일을 www.speedscope.app/에 업로드할 수도 있습니다. (파일 업로드) CPU 프로필 Flame 그래프를 얻으려면 (자세한 사용법 소개: www.npmjs.com/package/spe...
ab를 사용할 수 있습니다. , 또는 기타 압력 테스트 도구
요약 이유 찾기위 내용은 노드 서비스 CPU가 너무 높으면 어떻게 해야 합니까? 문제 해결 아이디어에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!