CPU 사용량 100% 해결: 먼저 높은 CPU 사용량에 영향을 미치는 특정 프로세스를 찾은 다음 높은 CPU 사용량에 영향을 미치는 프로세스가 정상인지 확인하고 최종적으로 이를 분류하고 처리합니다.
이 문서의 운영 환경: Windows Server 2008 시스템, Dell G3 컴퓨터.
CPU 사용량 100% 문제를 해결하는 방법은 무엇입니까?
이 문서에서는 주로 Windows 인스턴스의 높은 CPU 사용량 문제에 대한 문제 해결 및 솔루션을 소개합니다.
Alibaba Cloud는 다음 사항을 상기시켜 드립니다.
- 인스턴스 또는 데이터 수정이나 변경과 같은 위험한 작업이 있는 경우 인스턴스의 재해 허용 및 내결함성에 주의하여 데이터 보안을 보장해야 합니다.
- 인스턴스(ECS, RDS를 포함하되 이에 국한되지 않음) 등에 대한 구성 및 데이터 수정을 하는 경우 미리 스냅샷을 생성하거나 RDS 로그 백업 및 기타 기능을 활성화하는 것이 좋습니다.
- Alibaba Cloud 플랫폼에서 로그인 계정, 비밀번호 등의 보안 정보를 승인했거나 제출한 경우 적시에 수정하는 것이 좋습니다.
이 글에서는 주로 다음 단계를 소개합니다.
포지셔닝 문제. CPU 사용량을 높이는 특정 프로세스를 찾으십시오.
분석 및 처리. CPU 사용량이 많은 프로세스가 정상인지 확인하고 분류하여 처리합니다.
작업 예시. 구체적인 문제 해결 및 솔루션 프로세스를 소개합니다.
자세한 정보. 문제 해결 도구 사용을 소개합니다.
Microsoft에는 작업 관리자, 리소스 모니터(리소스 모니터), 성능 모니터(성능 모니터), 프로세스 탐색기, Xperf(Windows Server 2008 이후), KernRate(Windows Server 2003), 검사를 위해 시스템 전체 메모리 덤프를 가져옵니다. 트래픽이 많은 경우 Wireshark를 사용하여 일정 기간 동안 네트워크 패킷을 캡처하고 트래픽 사용량을 분석할 수도 있습니다.
Tips: Windows Server 2008 이상 시스템은 일반적으로 시스템과 함께 제공되는 리소스 모니터를 사용하여 CPU를 모니터링합니다.
바탕화면 하단의 시작 메뉴를 클릭하고 실행을 선택하세요.
실행 상자를 연 후 상자에 perfmon -res
를 입력하고 OK를 클릭하세요.
리소스 모니터 페이지에서 각 프로세스의 CPU 사용량이 높은지 확인하세요.
더 높은 리소스를 차지하는 프로세스의 경우 해당 프로세스 ID와 프로세스의 프로그램 이름을 확인하세요.
CPU 사용량에 영향을 미치는 프로세스가 정상 프로세스인지 비정상 프로세스인지 판단하고 분류하여 처리해야 합니다.
정상적인 상황에서는 고객이 업체에 자주 접속하거나 Windows 자체 서비스(업데이트 서비스 등)로 인해 높은 네트워크 트래픽과 CPU를 점유할 수 있습니다. 정상적인 프로세스로 인해 CPU 사용량이 높은 경우, 다음 순서에 따라 하나씩 문제를 해결하시기 바랍니다.
Tips: Windows Server 2008 또는 Windows Server 2012 인스턴스의 메모리 구성은 2G 이상인 것이 좋습니다.
Windows 업데이트가 백그라운드에서 실행되고 있는지 확인하세요.
바이러스 백신을 위해서는 서버에 바이러스 백신 소프트웨어를 설치하는 것이 좋습니다. 바이러스 백신 소프트웨어를 설치한 경우, CPU 사용량이 높을 때 바이러스 백신 소프트웨어가 백그라운드에서 검사 작업을 수행하는지 확인하세요. 가능하다면 백신 소프트웨어를 최신 버전으로 업그레이드하거나 백신 소프트웨어를 삭제하시기 바랍니다.
ECS 내의 애플리케이션에 대량의 디스크 액세스, 네트워크 액세스 동작 또는 높은 컴퓨팅 요구 사항이 있는지 확인하십시오. 구성 업그레이드와 같은 리소스 병목 현상을 해결하려면 인스턴스 사양을 늘리고 더 많은 코어 또는 메모리 사양을 사용해 보십시오.
서버 구성이 높으면 구성을 업그레이드하는 것이 별 의미가 없습니다. 아키텍처 측면에서 서버 구성이 높을수록 좋다는 의미는 아닙니다. 이때 애플리케이션 분리와 관련 프로그램 최적화를 동시에 시도해야 합니다. 예시 지침은 다음과 같습니다.
CPU 사용량이 비정상적으로 높은 경우 악성 바이러스 및 트로이 목마에 의해 발생할 수 있습니다. 때로는 타사 악성 프로그램이 운영 체제의 svchost.exe 또는 Tcpsvcs.exe를 사용하여 자신을 위장하여 CPU 사용량을 높일 수 있습니다. 비정상적인 프로세스를 수동으로 감지하고 종료해야 합니다.
Tips: 프로세스가 바이러스인지 트로이 목마인지 판단할 수 없는 경우 온라인에서 프로세스 이름을 검색하여 확인하는 것이 좋습니다. 또한, 프로세스를 삭제하기 전에 미리 스냅샷을 생성하여 백업을 완료하는 것이 좋습니다.
Windows 업데이트를 실행하여 최신 Microsoft 보안 패치를 설치하세요.
MSconfig를 사용하여 Microsoft 이외의 모든 서비스 드라이버를 비활성화하고 문제가 다시 발생하는지 확인하세요. 특정 작업은 Windows 시스템에서 클린 부팅을 수행하는 방법을 참조하세요.
서버나 사이트가 DDoS 공격이나 CC 공격을 당할 경우 짧은 시간 내에 대량의 접속 요구가 발생하게 됩니다. 클라우드 보안 센터에 로그인하여 Cloud Shield의 DDoS 공격에 대한 보호 임계값이 조정되었는지 확인하고 CC 보호가 켜져 있는지 확인할 수 있습니다. 공격이 임계값을 트리거하지 않고 Cloud Shield가 치료되지 않은 경우 애프터 서비스에 문의하여 치료를 시작할 수 있습니다.
CPU 사용량이 높은 원인은 다음과 같습니다.
Tips: Windows Server 2012의 1코어 1GB 인스턴스를 사용하는 경우 Windows 업데이트 서비스가 자동으로 업데이트되며 인스턴스의 CPU 사용량이 갑자기 증가하는 것은 정상적인 현상입니다.
Tips: 이 문서에서는 Microsoft의 공식 문서와 도구 링크를 많이 인용합니다. 저작권 및 소유권은 Microsoft에 속합니다. 적시에 업데이트되지 않습니다.
CPU 사용량이 높을 때 Windows 업데이트 프로세스가 백그라운드에서 실행되고 있는지 확인하세요.
바이러스 백신 소프트웨어가 백그라운드에서 검사 작업을 수행하고 있는지 확인하세요. 바이러스 백신 소프트웨어를 최신 버전으로 업그레이드하거나 바이러스 백신 소프트웨어를 삭제할 수 있습니다.
Run을 클릭한 다음 MSCONFIG을 입력하고 Microsoft 이외의 서비스 드라이버를 모두 비활성화한 다음 문제가 다시 발생하는지 확인하세요. 관련 참고문서는 다음과 같습니다.
상용 바이러스 백신 소프트웨어 또는 Microsoft Security Scanner를 사용하여 안전 모드에서 바이러스를 검사하세요. Microsoft Security Scanner에 대한 참조 문서는 다음과 같습니다.
Windows 업데이트를 실행하여 최신 Microsoft 보안 패치를 설치하세요.
ECS 인스턴스에 대용량 디스크 액세스, 네트워크 액세스 및 높은 컴퓨팅 요구 사항이 있는 경우 CPU 사용량이 높은 것은 일반적으로 인스턴스 사양을 업그레이드하여 부족한 리소스를 처리할 수 있습니다. 인스턴스 사양 업그레이드 방법에 대한 내용은 다음 문서를 참고하시기 바랍니다.
업그레이드 및 다운그레이드 방법 요약
다음은 Windows 인스턴스 문제 해결 도구에 권장되는 관련 내용입니다.
Process Explorer
성능 모니터
Processor(_Total)% Processor Time
은 Processor(*)% User Time
과 Processor(*)% Privileged Time
의 합입니다. . Processor(_Total)% Processor Time
是Processor(*)% User Time
与Processor(*)% Privileged Time
之和。
Processor(_Total)% Processor Time
Processor(*)% User Time
Processor(*)% Privileged Time
Processor(*)% Privileged Time
是应用程序在内核中执行系统调用(例如驱动、IRP,上下文切换等)操作的时间。如果操作系统花费多余30%的时间在Privileged Time
,如下图所示,则说明实例正在进行高I/O吞吐相关的操作。
% Privileged Time
很高时,需要进一步检查% DPC Time
、% Interrupt Time
以及Context Switches/sec
的情况。
% DPC Time
、% Interrupt Time
意味着未知设备出现大量的操作或者很差的性能问题,请参考如下文档。
Context Switches/sec
意味着有大量的线程处于Ready状态,需要减少线程的数量解决问题。% DPC Time
、% Interrupt Time
很高时,需使用Microsoft Xperf工具进一步分析,请参考如下文档使用XPerf工具。
Processor(*)% User Time
表示处理器用于执行程序代码的时间消耗,可以确定哪个应用程序或函数调用消耗了较多的时间。User Time
프로세서(_Total)% 프로세서 시간
프로세서(*)% 사용자 시간
프로세서(*)% 권한 시간
% DPC 시간
, % 인터럽트 시간
및 컨텍스트 스위치/초
에 대한 추가 확인이 필요합니다. 상황. 🎜🎜높은 % DPC 시간
및 % 인터럽트 시간
은 알 수 없는 장치에 많은 작업이 있거나 성능 저하 문제가 있음을 의미합니다. 다음 문서를 참조하세요. 🎜🎜🎜자신만의 모험 선택: 높은 지연 프로시저 호출(DPC) 또는 높은 인터럽트🎜🎜🎜🎜🎜컨텍스트 스위치/초
가 높다는 것은 많은 것을 의미합니다. of 스레드가 Ready 상태이므로 문제를 해결하려면 스레드 수를 줄여야 합니다. 🎜🎜🎜🎜% DPC Time
및 % Interrupt Time
이 매우 높은 경우 추가 분석을 위해 Microsoft Xperf 도구를 사용해야 합니다. 사용하려면 다음 문서를 참조하세요. XPerf 도구. 🎜🎜🎜Windows IT Pro Magazine: Examining xPerf🎜🎜🎜🎜🎜Context Switch 값이 매우 높을 경우, 다음 문서를 참고하시기 바랍니다. 🎜🎜2백만 개의 컨텍스트 스위치 사례🎜🎜🎜Mark Russinovich의 시스템 프로세스 CPU 스파이크 사례🎜🎜🎜🎜🎜Processor(*)% User Time
프로세서가 프로그램 코드를 실행하는 데 소비한 시간을 나타내며, 이에 따라 어떤 응용 프로그램이 결정될 수 있습니다. 또는 함수 호출에 더 많은 시간이 소요됩니다. 🎜🎜사용자 시간
이 높은 상황은 아래 그림과 같습니다. 🎜🎜🎜🎜🎜🎜🎜적용 가능 🎜🎜🎜클라우드 서버 ECS🎜🎜🎜위 내용은 CPU 사용량 100% 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!