티스토리 뷰



리눅스/유닉스 시스템에서 현재 시스템의 성능 사용 상황을 분석하는 간단한 방법은 위의 그림처럼 "top" 명령을 사용하는 것이다. 로드 평균으로 CPU의 사용 상황을 판단할 수 있고, 메모리의 여유도를 판단할 수도 있다. 무엇보다 시스템의 자원을 쏙쏙 빨아먹고 있는 프로세스는 최상단으로 올라오기 때문에 어떤 프로세스가 문제인지 어렵지 않게 파악할 수 있다.

 

물론 윈도에서도 작업 관리자> 프로세스 탭에서 CPU나 메모리를 가장 많이 소모하고 있는 프로세스를 확인할 수 있다. 문제는 시스템 자원이 거의 남지 않은 상황이라 작업 관리자 수행 자체가 어렵거나 아예 키보드 마우스가 먹통이 되어버린 경우이다. 그래서, 이런 경우에 적용할 수 있는 한두 가지 팁을 다루어 보고자 한다.

 

윈도+r 단축키를 누르고 "powershell"을 입력하거나

 

시작에서 "powershell"을 입력하는 방식으로 파워쉘을 실행시킨다.

 

위의 화면은 리눅스의 top 명령처럼 현재 시스템에서 CPU를 가장 많이 사용하는 프로세스들을 20개 표시하고 있는 모습이다. Ctrl+C로 중단시킬 때까지 반복해서 상황을 모니터링할 수 있다. 위의 화면처럼 수행할 수 있는 명령은 아래와 같이 입력하면 된다. 2초에 한번 CPU 사용이 많은 20개의 프로세스를 리스팅 한다.

 

While(1) {ps | sort -des cpu | select -f 20 | ft -a; sleep 2; cls}

 

또 다른 상황은 시스템에 손을 쓸 수 없는 상황을 찾기 위한 방법으로 물론 재현이 되지 않는 것이라면 찾을 수 없겠지만, 몇 시간 정도 걸어놓으면 시스템의 성능 자원을 어떤 프로세스들이 소모하고 있는가를 판단할 수 있고, 모니터링 상황에서 문제가 재현된다면 기록을 통해 상황을 분석할 수 있으므로 확실한 자료를 확보하는 방법이다. 위의 명령은 상황을 화면에는 출력하지 않고 파일에 로깅하도록 한 것이다.

 

While(1) {get-date >> cpumon.log; ps | sort -des cpu | select -f 5 | ft -a >> cpumon.log; sleep 2}

 

위의 명령은 2초에 한 번씩 CPU 사용이 많은 5개의 프로세스를 시간과 함께 파일에 로깅한다.

 

위의 그림은 모니터링을 중단한 다음 로깅 파일을 살펴본 것이다.

 


댓글
댓글쓰기 폼