Versions Compared

Key

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

...

위 에서 설명한 바와 같이 처리 속도를 추정하기 위해 I/O 서브시스템과 네트워크 대역폭에 대해 고려하여 추정합니다.

이론적으로는 두 요소의 요소 각각의 최대값 중에서 최소값을 작은값을 최대 처리 속도로 추정할 수 있으며, 이 값에 오버헤드를 약 3% 정도로 가정해서 추산합니다.

...

처리량 최적화 튜닝

bsr의 성능에 영향을 줄 수 있는 몇 가지 구성 옵션 들 중 몇 가지 권장할 만한 사항들을 소개합니다. 하지만 성능은 하드웨어에 크게 좌우되기 때문에 여기서 설명한 옵션들을 조정한 효과는 시스템마다 다를 수 있습니다. 따라서 이러한 권장사항들이 모든 성능 병목을 해결해주는 절대적인 요소는 아닙니다.

max-req-

...

write-

...

count

Primary 노드의 I/O request 버퍼 큐(req-buf)의 최대 크기를 지정합니다. 이 버퍼는 로컬 디스크로 I/O 가 발생되면 해당 I/O 를 1차적으로 큐잉하기 위한 장소로서 TCP 송신버퍼로 I/O Request 가 넘겨지기 이전 시점에 1차 버퍼링을 위한 용도로 사용됩니다.

...

I/O 서브시스템의 수행 시간은 주로 디스크의 회전속도(RPM)에 의해 정해집니다. 따라서 RPM이 더 빠른 디스크를 사용하는 것이 수행 시간을 개선할 수 있는 올바른 접근 방법입니다.요즘은 SSD 저장장치를 많이 사용하므로 fixed 타입의 하드디스크의 사용은 많이 줄어 들었지만 RPM 이 높은 디스크를 사용해야 하는 것은 좋은 성능을 위한 필수 조건 입니다. 마찬가지로 배터리 장착 쓰기 캐시(battery-backed write cache-BBWC)를 사용하는 경우도 쓰기시간을 줄일 수 있습니다. 최근 대부분의 스토리지 장비에서는 이런 캐시가 장착되어 있고 읽기 쓰기 캐시 비율을 관리자가 설정할 수 있습니다. 쓰기 I/O의 성능을 높이려면 읽기 캐시를 없애고 쓰기 캐시에 모두 사용할 것을 권장합니다.

...

특히 Windows 에서 TCP의 기본 속성인 지연 응답(Delayed ACK)은 전송 대역폭 최적화에는 도움이 되지만 지연시간에는 지연시간에 나쁜 영향을 주기 때문에 수동으로 비활성화해 주어야 합니다. bsr 이 최초 설치될 때에는 이것을 설치과정 중에 자동 스크립트로 수행해 주지만 이후 랜카드 교체가 있을 경우에는 다시 이 작업을 수동으로 해야 합니다.

...

  • TcpAckFrequency(REG_DWORD) = 1

Info

리눅스는 리눅스의 TCP 지연ACK 속성은 OS 기본값을 사용합니다.

가속 버퍼

bsr 은 비동기 복제에서 로컬 I/O 의 완료를 빠르게 처리하기 위해 가속버퍼(accelbuf)를 통한 2중 버퍼링을 구현합니다.(1.7 이상) 이 가속버퍼는 로컬 I/O의 지연을 최소화 하고 특히 4KB 이하의 I/O 에 대한 지연을 최적화 합니다. 4KB 이하의 로컬 I/O 가 빈번하게 발생하는 환경일 경우 가속버퍼를 통해 I/O 지연을 완화시킬 수 있습니다통한 최적화 구성을 권장합니다.

가속버퍼의 크기는 기본 10MB 이며 최대 2GB 까지 지정할 수 있습니다.

...