커넥터 설정 미세 조정

Google Cloud Search SDK에는 모든 커넥터에서 사용되는 Google 제공 구성 매개변수가 여러 개 포함되어 있습니다. 이러한 설정을 조정하는 방법을 알면 데이터 색인 생성이 크게 간소화됩니다. 이 가이드에는 색인 생성 중에 표시될 수 있으며 이를 해결하는 데 사용되는 설정을 확인합니다.

FullTraversalConnector의 색인 생성 처리량이 낮음

다음 표에는 네트워크의 처리량을 개선하기 위한 구성 설정이 나와 있습니다. FullTraversalConnector일 수 있습니다.

설정 설명 기본값 시도할 구성 변경
traverse.partitionSize 추가 APIOperation()를 가져오기 전에 일괄 처리할 ApiOperation() 수입니다. SDK는 추가 항목을 가져오기 전에 현재 파티션이 처리될 때까지 기다립니다. 이 설정은 가용 메모리 용량에 종속됩니다. 50 또는 100과 같이 파티션 크기가 비교적 작은 경우 필요한 메모리 용량도 더 적지만 SDK를 대신하여 더 많이 대기합니다. 50 사용 가능한 메모리가 많으면 partitionSize을 1, 000 이상으로 늘려보세요.
batch.batchSize 함께 일괄 처리할 요청의 수. 파티션 나누기 후 SDK는 파티션에서 모든 일괄 처리 요청이 처리될 때까지 대기합니다. 일괄 처리의 크기가 클수록 더 긴 대기 시간이 필요합니다. 10 배치 크기를 줄입니다.
batch.maxActiveBatches 허용 가능한 동시 실행 일괄 처리의 수. 20 batchSize를 낮추면 다음 수식에 따라 maxActiveBatches를 늘려야 합니다.

maxActiveBatches = (partitionSize / batchSize) + 50. 예를 들어 partititionSize가 1, 000이고 batchSize가 5이면 maxActiveBatches는 250이어야 합니다. 추가 50은 재시도 요청을 위한 버퍼입니다. 이렇게 늘리면 커넥터가 모든 요청을 차단 없이 일괄 처리하도록 합니다.
traverse.threadPoolSize 병렬 처리를 위해 커넥터가 생성하는 스레드의 수. 단일 반복자는 작업 (일반적으로 RepositoryDoc 객체)을 순차적으로 가져오지만 API 호출은 threadPoolSize 수의 스레드를 사용하여 병렬로 처리됩니다. 각 스레드는 한 번에 하나의 항목을 처리합니다. 기본값 50은 동시에 최대 50개의 항목만 처리하며 개별 항목을 처리하는 데 약 4초가 소요됩니다(색인 생성 요청 포함). 50 threadPoolSize 값을 10의 배수만큼 늘려 보세요.

마지막으로 setRequestMode() 메서드를 사용하여 API 요청 모드 (ASYNCHRONOUS 또는 SYNCHRONOUS)를 변경하는 것이 좋습니다.

구성 파일 매개변수에 대한 자세한 내용은 Google에서 제공하는 구성 매개변수

ListTraversalConnector의 색인 생성 처리량이 낮음

기본적으로 ListTraversalConnnector를 구현하는 커넥터는 단일 순회자를 사용하여 항목의 색인을 생성합니다. 색인 생성 처리량을 늘리려면 다음과 같이 하면 됩니다. 각각 특정 영역에 중점을 둔 자체 구성을 가진 여러 개의 순회자를 생성 항목 상태 (NEW_ITEM, MODIFIED 등)입니다. 다음 표에는 처리량 개선을 위해 다음과 같이 구성 설정을 변경합니다.

.
설정설명기본값시도할 구성 변경
repository.traversers = t1, t2, t3, ...t1, t2, t3, ...이 각각의 고유 이름인 하나 이상의 개별 순회자를 만듭니다. 이름이 지정된 각 순회자에는 traversers.t1.hostloadtraversers.t2.hostload와 같은 순회자의 고유한 이름을 사용하여 식별되는 자체 설정 집합이 있습니다.순회자 하나이 설정을 사용하여 부가적인 추가 순회자를 추가합니다.
traversers.t1.hostload = n동시에 항목의 색인을 생성하는 데 사용할 스레드 수(n)를 식별합니다.5저장소에 적용할 부하의 양에 따라 n를 조정하며 실험합니다. 10 이상의 값부터 시작합니다.
schedule.pollQueueIntervalSecs = s다시 폴링하기 전에 대기할 초 수(s)를 식별합니다 . 콘텐츠 커넥터는 API가 폴 응답에서 항목을 반환하는 한 계속해서 항목을 폴링합니다. 폴 응답이 비어 있으면 커넥터가 s초 동안 대기한 후 다시 시도합니다. 이 설정은 ListingConnector에만 사용됩니다.101로 낮춥니다.
traverser.t1.pollRequest.statuses = status1, status2, …색인을 생성할 항목의 상태(status1, status2, )를 지정합니다. 예를 들어 status1NEW_ITEM로, status2MODIFIED로 설정하면 순회자 t1가 이러한 상태의 항목만 색인을 생성합니다.하나의 순회자가 모든 상태를 확인합니다.다양한 상태에 대해 다양한 순회자 폴링을 사용하여 실험합니다.

구성 파일 매개변수에 대한 자세한 내용은 Google에서 제공하는 구성 매개변수

대용량 파일 업로드 중 SDK 시간 초과 또는 중단

대용량 파일을 업로드하는 동안 SDK 시간 초과 또는 중단이 발생하면 사용하여 더 긴 시간 제한을 지정합니다. traverser.timeout=s (여기서 s = 초 수) 이 값은 작업자가 얼마나 오랫동안 스레드는 항목을 처리해야 합니다. SDK의 기본 제한 시간은 60초입니다. 사용할 수 있습니다 또한 개별 API 요청이 발생하는 경우 제한 시간이 초과되면 다음 메서드를 사용하여 요청 제한 시간 값을 늘립니다.

요청 제한 시간 매개변수 설명 기본값
indexingService.connectTimeoutSeconds API 요청 색인 생성의 연결 제한 시간 120초
indexingService.readTimeoutSeconds API 요청 색인 생성의 읽기 제한 시간 120초