none
Windows Server 2008서버에서 Hard Fault 발생으로 성능저하 RRS feed

  • 질문

  • 서버 2008 enterprise 32bit를 운영하고 있습니다.

    개발서버로 사용하고 있는데 물리적 메모리가 16GB입니다.

    개발툴로 Visual studio 2008를 사용하는데 C/C++ Complier를 5개 정도 띄워서 사용하면

    물리적 메모리는 3~4GB를 사용하는데 Hard Fault가 11,000 으로 상당히 서버 성능저하가 발생됩니다.

    메모리는 남아도는데 이거 어떻게 해야하나요?

    OS에서 처리를 못하는건지 개발툴에서 사용하는 소스파일 자체가 문제인지..

    아시는분 도움부탁드립니다.

    2011년 6월 28일 화요일 오후 12:27

모든 응답

  • 2008 64Bit OS 로 리빌드하시는 것이 좋습니다.

    32Bit OS 에서는 일반적으로 응용프로그램이 4GB이상의 장착된 16GB 물리메모리를 제대로 활용하지 못합니다.

    2011년 6월 29일 수요일 오전 1:29
  • 안녕하세요?

    답변 감사드립니다.

    하기 내용과 같이 Windows Server 2008 Enterpise Edition에서 64GB 까지 지원한다고 되어있습니다.

    PAE를 적용하였고, 서버상에는 16GB이 표기가 됩니다.

    http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx#physical_memory_limits_windows_server_2008

    답변주신 내용은 MS에서 안내하는 memory limit 과 상이한데, 어떻게 되는지 추가 문의 드립니다.

    OS에서는 16GB로 나타나더라도 응용프로그램이 사용할 수 있는 메모리 한게가 4GB이라는 것인가요?

    그리고 서버 2003 Enterprise Edition에서 PAE를 적용하여 8GB중 4GB이상 인식하고 사용하고 있습니다.

    도움부탁드립니다.

     

    2011년 6월 29일 수요일 오전 4:40
  • 32Bit OS에서 PAE를 적용해서 OS에서 인식하더라도 

    기본적인 응용프로그램 ( 즉 유저프로세스)에서 사용가능한 가상 어드레스 영역은 최대 2GB가 한계입니다.

    ( 사실 비쥬얼스투디오 자체가 32비트 프로그램이기 때문에 64Bit OS에서도 2gb의 한계는 벗어날수는 없지만 )

     

    /Largeaddressaware 옵션으로 PAE를 인식하게 재컴파일된 응용프로그램은 PAE로 확장된 4g 이상의 어드레스영역

    활용이 가능하지만 그외 나머지 일반 프로그램은  똑같습니다  

    SQL 서버 같은 프로그램은 PAE 인식하는 프로그램이기에 /PAE 옵션의 효과를 볼수 있지만  


    32bit 일반적인 프로그램은 32Bit OS에서 물리영역의 한계인 4GB를 넘어서는 많은 양의 램을 꽂는다고 해서  


    확장된 램을 모두 쓸수 있는(?) 효과를  볼 수는 없습니다  

     

    하지만 64Bit OS를 설치하면 PAE 사용없이 모든 램을 활용가능하기에   32/64용 프로그램 상관없이 많은 프로세스가

    실행될때  좀 더 많은 Working set 을  물리램에 가져갈수 있습니다.


    2011년 6월 29일 수요일 오전 4:55