활성, 유휴 및 동시 HTTP 연결의 이점
HTTP 연결을 구성하는 방법은 StorageGRID 시스템의 성능에 영향을 미칠 수 있습니다. 구성은 HTTP 연결이 활성 상태인지 유휴 상태인지, 또는 동시에 여러 연결이 있는지에 따라 달라집니다.
다음 유형의 HTTP 연결에 대한 성능 이점을 확인할 수 있습니다.
-
유휴 HTTP 연결
-
활성 HTTP 연결
-
동시 HTTP 연결
유휴 HTTP 연결을 열어두는 이점
클라이언트 애플리케이션이 유휴 상태일 때에도 HTTP 연결을 열어 두어 클라이언트 애플리케이션이 열려 있는 연결을 통해 후속 트랜잭션을 수행할 수 있도록 해야 합니다. 시스템 측정 및 통합 경험에 따르면, 최대 10분 동안 유휴 HTTP 연결을 열어 두는 것이 좋습니다. StorageGRID 10분 이상 열려 있고 유휴 상태인 HTTP 연결을 자동으로 닫을 수 있습니다.
열려 있고 유휴 상태인 HTTP 연결은 다음과 같은 이점을 제공합니다.
-
StorageGRID 시스템이 HTTP 트랜잭션을 수행해야 한다고 판단하는 시간부터 StorageGRID 시스템이 트랜잭션을 수행할 수 있는 시간까지의 대기 시간이 단축됩니다.
가장 큰 장점은 지연 시간이 줄어든다는 것입니다. 특히 TCP/IP와 TLS 연결을 구축하는 데 필요한 시간이 줄어듭니다.
-
이전에 수행된 전송을 사용하여 TCP/IP 느린 시작 알고리즘을 프라이밍하여 데이터 전송 속도를 높였습니다.
-
클라이언트 애플리케이션과 StorageGRID 시스템 간 연결을 방해하는 여러 종류의 오류 조건에 대한 즉각적인 알림
유휴 연결을 얼마나 오랫동안 열어둘지는 기존 연결과 관련된 느린 시작의 이점과 내부 시스템 리소스에 대한 연결의 이상적인 할당 간의 균형에 달려 있습니다.
활성 HTTP 연결의 이점
스토리지 노드에 직접 연결하는 경우, HTTP 연결이 지속적으로 트랜잭션을 수행하더라도 활성 HTTP 연결 기간을 최대 10분으로 제한해야 합니다.
연결이 열려 있어야 하는 최대 기간을 결정하는 것은 연결 지속성의 이점과 내부 시스템 리소스에 대한 연결의 이상적인 할당 간의 균형입니다.
스토리지 노드에 대한 클라이언트 연결의 경우 활성 HTTP 연결을 제한하면 다음과 같은 이점이 있습니다.
-
StorageGRID 시스템 전반에 걸쳐 최적의 부하 분산을 가능하게 합니다.
시간이 지남에 따라 부하 분산 요구 사항이 변경되어 HTTP 연결이 더 이상 최적이 아닐 수 있습니다. 시스템은 클라이언트 애플리케이션이 각 트랜잭션에 대해 별도의 HTTP 연결을 설정할 때 최상의 부하 분산을 수행하지만, 이는 지속적인 연결과 관련된 훨씬 더 가치 있는 이점을 무효화합니다.
-
클라이언트 애플리케이션이 사용 가능한 공간이 있는 LDR 서비스로 HTTP 트랜잭션을 전달할 수 있도록 합니다.
-
유지 관리 절차를 시작할 수 있습니다.
일부 유지 관리 절차는 진행 중인 모든 HTTP 연결이 완료된 후에만 시작됩니다.
로드 밸런서 서비스에 대한 클라이언트 연결의 경우, 열려 있는 연결의 기간을 제한하면 일부 유지 관리 절차를 즉시 시작하는 데 유용할 수 있습니다. 클라이언트 연결 기간이 제한되지 않은 경우 활성 연결이 자동으로 종료되는 데 몇 분이 걸릴 수 있습니다.
동시 HTTP 연결의 이점
성능을 높이기 위해 StorageGRID 시스템에 대한 여러 TCP/IP 연결을 열어 두어 병렬 처리를 허용해야 합니다. 병렬 연결의 최적 수는 다양한 요인에 따라 달라집니다.
동시 HTTP 연결은 다음과 같은 이점을 제공합니다.
-
지연 시간 감소
다른 거래가 완료될 때까지 기다릴 필요 없이 바로 거래를 시작할 수 있습니다.
-
처리량 증가
StorageGRID 시스템은 병렬 트랜잭션을 수행하고 전체 트랜잭션 처리량을 늘릴 수 있습니다.
클라이언트 애플리케이션은 여러 개의 HTTP 연결을 설정해야 합니다. 클라이언트 애플리케이션이 트랜잭션을 수행해야 할 때, 현재 트랜잭션을 처리하지 않는 모든 기존 연결을 선택하여 즉시 사용할 수 있습니다.
각 StorageGRID 시스템의 토폴로지는 성능이 저하되기 시작하기 전까지 동시 트랜잭션과 연결에 대한 최대 처리량이 다릅니다. 최대 처리량은 컴퓨팅 리소스, 네트워크 리소스, 스토리지 리소스, WAN 링크와 같은 요소에 따라 달라집니다. StorageGRID 시스템이 지원하는 서버와 서비스의 수, 애플리케이션의 수도 요소입니다.
StorageGRID 시스템은 종종 여러 클라이언트 애플리케이션을 지원합니다. 클라이언트 애플리케이션에서 사용하는 최대 동시 연결 수를 결정할 때 이 점을 염두에 두어야 합니다. 클라이언트 애플리케이션이 StorageGRID 시스템에 각각 연결을 설정하는 여러 소프트웨어 엔터티로 구성된 경우 엔터티 간의 모든 연결을 추가해야 합니다. 다음과 같은 상황에서는 동시 연결의 최대 수를 조정해야 할 수도 있습니다.
-
StorageGRID 시스템의 토폴로지는 시스템이 지원할 수 있는 최대 동시 트랜잭션 및 연결 수에 영향을 미칩니다.
-
대역폭이 제한된 네트워크를 통해 StorageGRID 시스템과 상호 작용하는 클라이언트 애플리케이션은 개별 트랜잭션이 합리적인 시간 내에 완료되도록 동시성 수준을 낮춰야 할 수도 있습니다.
-
여러 클라이언트 애플리케이션이 StorageGRID 시스템을 공유하는 경우 시스템 제한을 초과하지 않도록 동시성 수준을 낮춰야 할 수도 있습니다.
읽기 및 쓰기 작업을 위한 HTTP 연결 풀 분리
읽기 및 쓰기 작업에 별도의 HTTP 연결 풀을 사용하고 각각에 대해 사용할 풀의 크기를 제어할 수 있습니다. HTTP 연결을 별도로 풀면 트랜잭션을 더 효과적으로 제어하고 부하를 분산할 수 있습니다.
클라이언트 애플리케이션은 검색 중심(읽기) 또는 저장 중심(쓰기) 로드를 생성할 수 있습니다. 읽기 및 쓰기 트랜잭션을 위한 별도의 HTTP 연결 풀을 사용하면 각 풀에서 읽기 또는 쓰기 트랜잭션에 할당할 양을 조정할 수 있습니다.