Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

최소 2GHz, 4 core 이상, x64 호환 프로세서에서 구성할 것을 권장합니다. 이 보다 낮은 사양의 프로세서 환경에서도 동작은 하지만 시스템의 I/O 성능을 고려하려면 되도록 머신의 사양을 높게 확보할 필요가 있습니다BSR 복제 엔진은 전용 쓰레드에 의해 실시간 I/O를 처리하므로 I/O Latency 를 좋게 하려면 복제 엔진이 전용으로 할당 될 수 있는 CPU 코어가 준비되어 있어야 I/O 처리 성능에 좋습니다.

메모리

  • 시스템은 커널 설정에 따라 다르지만 통상 메모리 사용량이 70% 를 넘을 경우 가상메모리 시스템의 페이징 기능을 운영합니다. 페이징은 성능저하를 유발하기 때문에 이를 예방하기 동작 시킵니다. 페이징이 동작하면 시스템 I/O 성능의 저하를 가져오므로 이를 방지하기 위해선 상시 30% 이상의 물리메모리 여유 공간을 확보하여 페이징 발생이 억제되도록 구성해야 합니다구성하는 게 성능에 유리합니다.

  • BSR 에서 사용하는 메모리는 비페이징 되는 물리메모리를 기본으로 하며 Windows의 경우 BSR 설정의 최대 쓰기 요청 회수값과 요청값(max-req-write-count)과 송신버퍼의 크기에 따라 최대 사용 메모리가 메모리 사용량이 결정됩니다.

    • 송신버퍼 없는 동기방식의 경우는

      • 쓰기 요청 기본 설정(1만)에서 1리소스 당 최대 1.5GB를 사용합니다.

      • 쓰기 요청 최대 설정(10만)에서 1리소스 당 최대 3GB를 사용합니다.

    • 송신버퍼 1GB 설정에서 비동기 방식의 경우는

      • 쓰기 요청 기본 설정에서 1리소스 당 최대 2.5GB를 사용합니다.

      • 쓰기 요청 최대 설정에서 1리소스 당 최대 4GB를 사용합니다.

예를 들어, 64GB의 물리메모리를 가진 서버의 경우 약 20GB(30%)의 메모리 여유공간이 필요하며 사용된 메모리 공간 중 BSR은 비동기방식 기본설정에서 1 리소스당 최대 2.5GB의 메모리 공간을 요구합니다.

페이징 발생을 억제하기 위한 30% 만약 30% 수준의 메모리 여유공간 확보가 불가한 환경에서는 환경이라면 페이징 발생에 따른 기본적인 I/O의 성능저하는 감수해야 하며 적어도 합니다. 하지만 복제에서 필요로 하는 1 리소스 당 3~4GB NP 메모리 사용량은 여유공간으로 유지시켜 주어야 합니다. 그렇지 않을 경우 메모리 자원 부족에 따른 장애로 이어질 수 있습니다.

Info
  • 페이징이 발생하는 시점은 시스템의 메모리 용량, 플랫폼, OS 버전에 따라 달라질 수 있으며 위에서 설명한 70%는 통상의 수치 입니다.

  • 리눅스의 리눅스에서의 BSR 메모리 사용량은 윈도우즈에 비해 비슷하거나 덜 사용합니다. 복제 아키텍처에서 다소 차이가 있어서 윈도우즈에서 메모리를 좀 더 사용합니다.

Info

최근 가상화 환경에서 VM 을 통한 복제 구성이 보편화 되어 가고 있습니다. 이런 환경의 특징은 개별 VM에 할당된 CPU 나 메모리 자원이 충분하게 할당 되지는 않는 다는 점 입니다. 예를 들어 개별 VM이 2core, 2~4GB 메모리로 구성될 경우 bsr 의 최소 구성사양에 충족되지 못할 수 있습니다. 이렇게 저사양의 VM 으로 복제 환경이 구성될 경우 bsr 엔진 내부의 성능 지연과 노드 간의 네트워크 통신(keep alive(ping) 지연이 빈번하게 발생될 가능성이 높아집니다. 기본적인 동작에는 문제가 없지만 I/O 부하가 커지거나 시스템의 HW 계층의 인터럽트 발생빈도가 높아지게 되면 VM 전반의 성능이 하락되고 그에 따라 bsr 도 동작에 영향을 받게 됩니다. 결론적으로 저 사양의 VM 에서 복제 환경을 구축하는 것에는 제약이 따른다는 것 입니다.

이 문제에 대응할 방법은 시스템 구성 자원을 넉넉하게 확보하는 방법 이외에는 별다른 해결책이 없습니다.

...