Điều chỉnh các tùy chọn cài đặt trình kết nối

SDK Google Cloud Search chứa một số tham số cấu hình do Google cung cấp mà tất cả các trình kết nối sử dụng. Nếu biết cách điều chỉnh các chế độ cài đặt này, bạn có thể đơn giản hoá quá trình lập chỉ mục dữ liệu. Hướng dẫn này liệt kê một số vấn đề có thể xuất hiện trong quá trình lập chỉ mục và các chế độ cài đặt dùng để giải quyết những vấn đề đó.

Thông lượng lập chỉ mục thấp cho FullTraversalAccessibility

Bảng sau đây liệt kê các chế độ cài đặt cấu hình để cải thiện thông lượng cho FullTraversalConnector:

Xem xét Nội dung mô tả Mặc định Thay đổi cấu hình cần thử
traverse.partitionSize Số lượng ApiOperation() cần được xử lý theo lô trước khi tìm nạp thêm APIOperation(). SDK chờ phân vùng hiện tại được xử lý trước khi tìm nạp các mục bổ sung. Chế độ cài đặt này phụ thuộc vào dung lượng bộ nhớ còn trống. Các kích thước phân vùng nhỏ hơn, chẳng hạn như 50 hoặc 100, cần ít bộ nhớ hơn nhưng sẽ chờ nhiều bộ nhớ hơn trên danh nghĩa của SDK. 50 Nếu bạn có nhiều bộ nhớ, hãy thử tăng partitionSize lên 1000 trở lên.
batch.batchSize Số lượng yêu cầu được nhóm lại với nhau. Khi kết thúc quá trình phân vùng, SDK sẽ chờ tất cả các yêu cầu theo lô xử lý từ phân vùng. Những lô lớn hơn cần thời gian chờ lâu hơn. 10 Hãy thử giảm kích thước lô.
batch.maxActiveBatches Số lô thực thi đồng thời được cho phép. 20 Nếu giảm batchSize, bạn nên tăng maxActiveBatches theo công thức sau:

maxActiveBatches = (partitionSize / batchSize) + 50. Ví dụ: nếu partititionSize là 1000 và batchSize là 5, thì maxActiveBatches của bạn phải là 250. 50 bổ sung là vùng đệm cho các yêu cầu thử lại. Mức tăng này cho phép trình kết nối phân lô tất cả các yêu cầu mà không chặn.
traverse.threadPoolSize Số lượng luồng mà trình kết nối tạo ra để cho phép xử lý song song. Một trình lặp sẽ tìm nạp thao tác (thường là đối tượng RepositoryDoc) theo tuần tự, nhưng lệnh gọi API lại xử lý song song bằng số lượng luồng threadPoolSize. Mỗi luồng sẽ xử lý một mục tại một thời điểm. Giá trị mặc định là 50 sẽ chỉ xử lý tối đa 50 mục cùng lúc và mất khoảng 4 giây để xử lý một mục riêng lẻ (bao gồm cả yêu cầu lập chỉ mục). 50 Hãy thử tăng threadPoolSize theo bội số của 10.

Cuối cùng, hãy cân nhắc sử dụng phương thức setRequestMode() để thay đổi chế độ yêu cầu API (ASYNCHRONOUS hoặc SYNCHRONOUS).

Để biết thêm thông tin về các tham số của tệp cấu hình, hãy tham khảo các tham số cấu hình do Google cung cấp.

Thông lượng lập chỉ mục thấp cho ListTraversalConnection

Theo mặc định, trình kết nối triển khai ListTraversalConnnector sẽ sử dụng một trình di chuyển duy nhất để lập chỉ mục các mục của bạn. Để tăng công suất lập chỉ mục, bạn có thể tạo nhiều trình theo dõi, mỗi trình theo dõi có cấu hình riêng tập trung vào các trạng thái mục cụ thể (NEW_ITEM, MODIFIED, v.v.). Bảng sau đây liệt kê các chế độ cài đặt cấu hình để cải thiện công suất:

.
Xem xétNội dung mô tảMặc địnhThay đổi cấu hình cần thử
repository.traversers = t1, t2, t3, ...Tạo một hoặc nhiều trình di chuyển riêng lẻ, trong đó t1, t2, t3, ... là tên riêng biệt của mỗi trình chuyển đổi. Mỗi trình chuyển đổi có tên có một nhóm các chế độ cài đặt riêng được xác định bằng tên riêng của trình chuyển đổi này, chẳng hạn như traversers.t1.hostloadtraversers.t2.hostloadMột người di chuyểnSử dụng chế độ cài đặt này để thêm những người di chuyển khác
traversers.t1.hostload = nXác định số lượng luồng, n, được dùng để lập chỉ mục các mục cùng lúc.5Hãy thử nghiệm việc điều chỉnh n dựa trên mức tải mà bạn muốn đặt vào kho lưu trữ. Bắt đầu bằng các giá trị từ 10 trở lên.
schedule.pollQueueIntervalSecs = sXác định số giây, s, phải chờ trước khi thăm dò lại . Trình kết nối nội dung sẽ tiếp tục thăm dò ý kiến, miễn là API trả về các mục trong phản hồi của cuộc thăm dò ý kiến. Khi không có phản hồi cho cuộc thăm dò ý kiến, trình kết nối sẽ đợi s giây trước khi thử lại. Cài đặt này chỉ được List Connectors sử dụng10Hãy thử giảm xuống 1.
traverser.t1.pollRequest.statuses = status1, status2, …Chỉ định trạng thái status1, status2, của các mục cần lập chỉ mục. Ví dụ: việc đặt status1 thành NEW_ITEMstatus2 thành MODIFIED sẽ hướng dẫn người chuyển đổi t1 chỉ lập chỉ mục các mục có những trạng thái đó.Một người di chuyển kiểm tra tất cả trạng tháiThử nghiệm với các cuộc thăm dò ý kiến người chuyển đổi khác nhau cho các trạng thái khác nhau.

Để biết thêm thông tin về các tham số của tệp cấu hình, hãy tham khảo các tham số cấu hình do Google cung cấp.

SDK hết thời gian chờ hoặc gián đoạn trong khi tải tệp lớn lên

Nếu bạn gặp phải thời gian chờ hoặc gián đoạn SDK trong khi tải các tệp lớn lên, hãy chỉ định thời gian chờ lớn hơn bằng cách sử dụng traverser.timeout=s (trong đó s = số giây). Giá trị này xác định khoảng thời gian các luồng worker phải xử lý một mục. Thời gian chờ mặc định trong SDK là 60 giây đối với các luồng trình chuyển đổi. Ngoài ra, nếu bạn hết thời gian chờ từng yêu cầu API, hãy sử dụng các phương thức sau để tăng giá trị thời gian chờ của yêu cầu:

Thông số thời gian chờ yêu cầu Nội dung mô tả Mặc định
indexingService.connectTimeoutSeconds Hết thời gian kết nối đối với các yêu cầu API lập chỉ mục. 120 giây.
indexingService.readTimeoutSeconds Hết thời gian đọc đối với các yêu cầu API lập chỉ mục. 120 giây.