[Tip & Tech] NT 입출력 값 트위킹(tweaking)하기

원래 이 트위킹은 고용량 시스템을 위해서 고려된 것이지만 갈수록 기하급수적으로 늘어만 가는 서버급의 파워를 가진 시스템이 가정으로 보급됨에 따라서 IOPageLockLimit 레지스트리 값을 최적화 하는 것에 대해서 관심을 보이는 사람들도 많아진 것도 사실이다. 기본적으로 이 값은 0으로 되어 있고 이 값을 NT는 512KB라고 읽는다. 충분한 양의 물리적 메모리, 램 을 가진 대부분의 사용자에게 있어서 이 세팅을 0으로 놓는 것이 캐싱 성능의 향상을 막는 것은 아니다.

그렇다면 누가 최적화를 해야 하는가?

    파일의 입출력 전송량이 크고 적절한 양의 사용하지 않는 물리적 메모리가 있는 사람이 이 트위킹이 필요할 것이다. 이러한 시스템의 경우 IOPageLockLimit의 값이 MB단위의 전체 물리적 메모리양을 KB단위로 64배나 혹은 128배를 지정하는 것으로 인해서 이점을 맛볼 수 있을 것이다. 예를 들자면 128MB 시스템은 8192KB 와 16384KB 사이의 십진수 값으로 지정한다는 것이다. 이것은 128MB와 이 이상의 시스템에서 사용될 수 있는 좋은 공식이다.

    이것보다 적은 메모리를 가진 시스템에 대해서는 1024KB로 시작하는 것이 좋고, ZDNet의 Winbench99 같은 프로그램을 돌려서 입출력 동작에 관한 바이트 제한 수치를 올리는 것이 어떠한 성능을 보일 것인지 확인 해보는 것을 권장한다. 성능이 향상되는 시점까지 1024KB단위로 값을 올려보기 바란다. 아마도 1024, 4096KB 혹은 더 높은 값이 최적화 된 값일 수 있다.

왜 램 사이즈에 기초한 간단한 공식은 없는가?

    각 시스템은 다른 세팅을 필요로 한다. 모든 시스템이 같은 양의 입출력 파일을 처리하지는 않고 모든 시스템이 마찬가지고 디스크 입출력상의 병목현상을 겪고 있지는 않다. 이것은 프로세서 파워, 디스크 액세스, 전송 속도와 메모리 크기가 모두 다른 시스템에서 이 인자들이 전체 성능에 모두 영향을 주기 때문이다.

    이 트위킹에 대해서 엄청난 성능 향상을 기대하고 있는가? 이 트위킹은 현재 시스템에서 조금이라도 더 쥐어 짜내서 성능향상을 맛보고자 하는 사람들을 대상으로 하므로 그리 엄청난, 시스템을 업그레이드한 듯한 성능의 향상은 기대하지 말라고 말하고 싶다.

    다음에 트위킹한 예가 있다.

Celeron 300a @ 450MHz, 256MB PC100, WD Expert 18GB 7200rpm

I/O PageLock Bmarks

0

16384

32768

Business Disk WinMark 99

6670

6800

6810

High-End Disk WinMark 99

14300

14900

17000

AVS/Express 3.4

18000

18000

17300

FrontPage 98

69900

71400

71900

MicroStation SE

20600

24200

25000

Photoshop 4.0

7080

7090

7140

Premiere 4.2

11300

11600

17800

Sound Forge 4.0

13500

13900

21100

Visual C++ 5.0

15100

15900

18500

CPU Utilization

12.17

12.21

13.14

    보는바와 같이 IOPageLockLimit값을 증가시킴에 따라서 점점 성능이 향상되는 것을 볼 수 있다. 그러나 CPU 점유율도 또한 증가한다. 그러나 이러한 성능향상에 비해서 CPU가 1%만이 증가되는 것이 그리 아까울 것인가?

    마찬가지로 이 작업 또한 사용자의 책임 하에서 하는 것이다. 레지스트리를 변경하기 전에 적절하게 백업을 하고 복구 시드크를 준비하는 것은 기본이다.

트위킹하는 방법

  • UDMA (만약 사용자의 장치가 이것을 지원한다면)를 포함해서 모든 것이 준비된 상태임을 확인하라. 레지스트리 편집기(regedit.exe 혹은 regedit32.exe)를 실행한다. 다음 레지스트리 키로 이동한다.

  • HKLMSystemCurrentControlSetControlSession ManagerMemory Management

  • 이 키에서 IOPageLockLimit 레지스트리 값에 더블클릭하고 DWORD 에디터 윈도우를 연다. (디폴트 값은 0 = 512KB 이다.)

  • 16진법 Hex 값에서 십진법으로 바꾸고 데이터 필드의 값을 사용자가 원하는 크기의 값을 KB 단위로 입력한다.(1024, 2048, 등등)

  • 레지스트리 에디터를 닫고 변경사항이 반영되게 하기 위해서 재부팅 한다.

NT의 수치값은 바이트 단위로 넣어야지 KB단위는 안 된다던데?

    이렇게 주장하는 많은 사람들을 보아왔지만 (즉 예를 들어 4096 대신에 4096000을 입력해야 한다는 것처럼), KB값을 넣는 것도 훌륭하게 동작한다.

    Written by Panders

    원본출처: http://arstechnica.com/


케이벤치 많이 본 뉴스
케이벤치 많이 본 기사