...
먼저 FSR 엔진의 지연을 튜닝하기 전에 시스템 환경에서의 I/O 지연시간을 측정하여 환경적으로 성능 병목이 없는지 먼저 확인합니다. 이것은 일반적으로 사용하는 성능 측정 도구를 활용하여 측정하면 됩니다. 최근 성능이 좋은 스토리지 환경에서는 1회 쓰기 당 수 nano 초 수준의 응답성능으로 측정될 경우 병목이 없다고 보면 됩니다. 이것은 전적으로 하드디스크의 하드웨어 성능 명세에 좌우됩니다.
다음은 FSR 커널엔진 동작에 따르는 따른 지연입니다. 쓰기 I/O 가 FSR 커널 엔진으로 유입되면 해당 쓰기가 복제로 수행될 I/O 인지를 식별하기 위해 FSR 엔진 내부적으로 관리되는 복제경로를 기반으로한 경로필터 관리하는 경로필터에 대한 탐색을 수행합니다. 탐색 결과에 의해 복제로 수행될 I/O 로 판정되면 해당 I/O 를 O의 데이터를 타깃으로 전송하기 위해 메모리 버퍼로 큐잉합니다복사합니다. 이 때 메모리 버퍼의 공간은 충분히 여유가 있어야 하며 혼잡하지 않아야 합니다. 만약 메모리 버퍼가 혼잡할 경우 I/O 는 메모리 버퍼를 건너뛰어 파일버퍼로 큐잉되고 복사되며 파일버퍼 조차 넘치게 되면 복제가 중단되어 전체 재동기화 상태로 전환됩니다.
복제 I/O 를 판별하는 경로필터는 경로검색을 위해 최적의 알고리즘으로 구현되어 있으나 검색비용이 증가할 경우 Latency 의 저하는 불가피 합니다. 따라서 복제 대상 경로를 너무 복잡하게 설정하거나 비 효율적으로 설정하는 것은 성능을 위해 바람직 하지 않습니다. 되도록 이면 제외필터를 활용하거나 경로필터의 요소 개수를 줄여서 설정하는 것이 바람직 합니다.
송신버퍼는 메모리버퍼와 파일버퍼 기능으로 제공됩니다. 파일버퍼는 디스크 하드디스크 공간을 버퍼공간으로 버퍼로 활용할 수 있다는 점에서 장점이 있지만 디스크에 I/O를 해야 하는 만큼 성능의 저하를 감수해야 합니다. 파일버퍼링이 동작하게 되면 기존 디스크 I/O에 비해 2배의 I/O 가 발생하게 되므로 최상의 조건에서도 최소한 최소 2배의 성능저하가 있습니다. 만약 이러한 성능저하가 우려된다면 파일버퍼는 제외하고 메모리 버퍼만 사용해야 합니다. 그러나 시스템의 여유 메모리 공간은 한계가 있기 때문에 메모리 버퍼에만 의존하기 어려운 경우에는 메모리 버퍼와 파일버퍼를 적절히 혼합하여 사용할 것을 권장합니다.
...