2011-01-25

윈도우즈7의 급격한 속도 저하와 시스템 멈춤현상이 발생한다면..

필자는 6~7개의 프로그램을 동시에 뛰워놓고 사용하는 작업이 많다.
어느순간 갑자기 속도가 저하되고 작업관리자에서 확인결과 프로세스가 100%가 되면서 마우스포인터가 움직이지 않고 시스템이 얼었다(Freeze) 풀리는 현상이 자주 발생했다.

사용자 애플리케이션을 종료하고 시작할때 동일한 현상이 발생해서
리소스모니터(resmon.exe)를 사용해 CPU, I/O, 네트워크를 확인해본 결과 애플리케이션이 실행될때 급격한 성능 저하가 발생한다는 것을 알게되었다.

일반 사용자 애플리케이션의 문제가 아니었다. 혹시나 해서 Superfetch 서비스를 종료했다.

windows service superfetch

Superfetch 서비스를 종료 후 프로그램 실행시에 I/O와 CPU 점유율이 현저하게 줄어들었다.
결과는 I/O와 CPU 점유율이 줄어든 만큼 시스템이 안정적이었다. 만족스런 결과를 얻었다.

그럼 Superfetch, Prefetch에 대해 알아보자
PreFetch
중요한 파일을 일정 영역에 미리 저장해 놓고 그 파일들을 이용해서 부팅이나 프로그램의 실행을 빠르게 해주는 기능
1. 부팅 시
자주 사용하는 시스템 설정 파일(드라이버 및 주요 시스템 파일)을 최적화시켜 저장해 놓고 그 파일을 부팅 시 불러와서 부팅을 빠르게 함
2. 응용 프로그램 실행 시
자주 사용하는 애플리케이션을 파악해서 램 또는 페이지 파일에 저장해서 프로그램 실행 속도(로딩)를 단축시킴

SuperFetch
Windows Vista부터 도입된 기능으로 PreFetch를 좀더 지능적으로 발전시킨 기능
다만, SuperFetch에서 선별한 파일 또는 애플리케이션의 용량이 클 때 하드 디스크가 과도하게 활성화된다. 따라서 이로 인해 시스템 성능이 저하될 수도 있어서 SuperFetch를 끄는 사용자도 있다.
출처 : http://duffle.tistory.com/116

애플리케이션이 실행되는 동안 애플리케이션의 리소스를 캐싱해 차후 실행 시 실행시간을 단축시키게 주 목적이다.
중요한건 프로세스 자체의 성능이 향되는 것이 아니라 로딩속도를 향상시키는 것이다.
(동일한 파일과 동일한 리소스를 사용하는 애플리케이션은 성능향상이 있다.
하지만 다양한 파일과 대용량 파일, 대량의 리소스를 사용하는 애플리케이션은 속도향상이 어렵다.)
이러한 이유로 프로세스가 실행되면서 캐싱을 위해 과도한(필요 이상의)  I/O와 CPU 사용이 발생하는 것이다. 과도한 자원 사용으로 인해 시스템과 다른 애플리케이션및 시스템 Freeze가 발생할 수 있다.

Superfetch양면성을 가지고 있다.
로딩 시간을 단축하기위한 캐싱작업이 오히려 시스템에 부하를 가져와 다른 프로세스(애플리케이션)에 영향을 주게 되는것이다.
만일 여유자원(CPU성능, 디스크성능, 메모리 성능)이 많은 시스템은 Superfetch로 인한 I/O와 CPU 부하가 부담되지 않을경우는 애플리케이션 로딩시간이 단축되지만 그렇지 않은 경우엔 현격한 성능저하가 발생한다.

현재 사용하는 윈도우7의 실행속도가 느리거나 Freeze현상이 발생한다면 Superfetch 서비스를 종료해 볼만하다.

만일 Superfetch 서비스를 중지하여도 프로그램 실행속도와 Freeze현상이 동일하게 발생한다면 Superfetch이외에 다른 문제가 있을것이다.(바이러스, 스파이외어, 외부공격, 웜 등).

추신 : IE만 사용하는데 마우스 작동이 엄추고 IE가 종료되는 현상이 발생한다면 이곳(http://goo.gl/86tkn)을 방문해보기 바란다.
MS에서 Windows7의 핫픽스를 제공하는데 윈도우즈 업데이트가 되어 있다면 이미 설치되 있을것이다.
( MS 고객지원 http://goo.gl/Dfpcl , 핫픽스 다운로드 http://goo.gl/2ZiVC

댓글 없음:

댓글 쓰기