Versions Compared

Key

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

...

다음에 설명하는 지연 요소들을 fsr 의 성능모니터를 사용하여 실시간 추적하고 추적하여 병목이 발생하는 요인들을 확인한 후 그에 맞는 적절한 해결책을 적당한 대응방안을 적용해야 합니다.

시스템 지연

fsr 엔진의 지연요소를 확인하기에 앞서 시스템 자체의 지연시간이 어느 정도인지 파악합니다. 이를 파악하려면 복제를 구성하지 않은 볼륨의 순수한 I/O 성능 결과를 성능을 확인해야 합니다. 스토리지의 성능에 따라 다르지만 통상 4KB 단위 I/O를 수행했을 때의 지연시간은 수 nano sec 수준이면 적당한 수치의 성능이라고 보면 됩니다. 이 보다 높게 측정된다면 시스템 자체의 지연이 있는 상태이며  스토리지 자체의 성능을 점검해 볼 필요가 있습니다.

fsr 엔진 지연

다음의 요소들은 fsr 엔진에서 구현하는 복제 로직들이며 구성요소들이며 성능 모니터를 통해 이 구간들에 대한 각 요소들 구간의 지연시간을 추적할 수 있습니다.

경로필터

fsr 로 I/O 가 유입되면 fsr 엔진은 경로필터 로직을 구동시켜 수행하여 I/O 의 경로가 리소스 내의 경로 경로인지 즉 복제 대상 I/O 인지를 식별합니다. 이 과정에서 발생하는 지연시간은 fsr에 등록된 복제 대상 경로가 많아질 수록 비용이 증가합니다. 따라서 리소스의 복제 대상 경로의 수를 되도록 이면 적게 유지하는 것이 바람직합니다. 그리고 예를 들어, 개별 파일로 복제 대상을 지정하기 보다는 복제 대상의 최상위 디렉터리 경로로 지정하는게 관리하기도 좋고 성능에도 좋습니다.

제외필터

경로필터와 더불어 사용하는 제외필터의 개수도 증가할 개수가 많아질 수록 성능에 좋지 않습니다. 되도록이면 제외필터의 개수가 적게 유지되도록 구성하십시오.

...

fsr은 복제 데이터를 버퍼링하기 전에 로컬 쓰기를 먼저 수행합니다. 이 때 로컬 쓰기 I/O 는 위에서 설명한 시스템 지연 시간과 이론적으로 동일한 성능 이어야 합니다. 만약 시스템 지연시간과 차이를 보인다면 이는 어딘가에 문제가 있다는 것을 의미 합니다. 이것은 대부분 fsr 엔진 내부의 병목 문제일 수 있으며 이는 맨텍의 기술지원을 통해 해결해야 합니다있습니다.

송신 버퍼링

로컬 쓰기 I/O 가 완료된 후 복제 데이터를 버퍼로 큐잉하고 원본 I/O를 완료합니다. 버퍼링이 빨리 되어서 원본 I/O 가 즉시 완료된다면 성능이 좋겠지만 버퍼링에 시간이 걸린다면 그 만큼 병목이 발생하고 I/O 가 지연됩니다.

이 때 사용하는 버퍼는 메모리 버퍼와 파일버퍼로 제공 되며 메모리 버퍼는 성능이 높기 때문에 별로 문제가 되지 않지만 파일버퍼는 실제 파일을 버퍼로 삼기 때문에 파일 I/O 가 기존에 비해 두 배로 발생하고 이 병목에 따른 성능저하가 발생합니다. 성능을 고려하면 메모리버퍼를 많이 사용하는게 좋지만 시스템의 자원 상황에 따라 파일버퍼를 같이 운영해야 할 경우라면 이러한 성능저하는 감안해야 감안하고 사용해야 합니다. 

전송 지연

로컬 I/O 는 버퍼링이 되는 시점에 완료가 되므로 버퍼링된 이후의 구간은 로컬 I/O 지연과는 무관합니다. 버퍼링된 데이터가 TX 로 빠져나가는 데 걸리는 데 드는 전송지연은 버퍼링 성능 측면의 지표입니다. 이 성능이 좋아야(전송지연이 낮아야) 복제가 원할하며 만약 버퍼링에 병목이 있다면 fsr 은 버퍼 넘침이 빈번하게 발생되면서 복제 상태를 유지하지 못하고 동기화를 반복하게 됩니다. 버퍼링 성능이 좋지 못한 경우는 fsr 내부 병목의 문제일 가능성이 높습니다.

물론 이것은 네트워크 전송대역이 감당할 수 있는 범위에 한정한 얘기입니다. 만약 로컬 I/O 대역에 비해 네트워크 전송대역이 많이 낮아서 전송대역이 받쳐주지 못하는 상황이라면 대역폭을 더 늘리거나 로컬 I/O 의 분배를 고려해야 합니다.


처리량

단위 시간 당 전송할 수 있는 데이터 양을 처리량으로 정의하며 실시간 복제를 유지하기 위해서는 적어도 로컬 I/O 부하보다 FSR 의 처리량 성능이 좋아야 합니다. 만약 로컬 I/O 부하에 비해 복제 처리량이 낮으면 버퍼 넘침이 유발되어 재동기화 상태가 반복되는 등 복제 상태가 유지되지 못할 수 있습니다. 이를 위해 다음의 내용들이 충족될 수 있도록 고려해야 합니다.

...