Đ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ố cấu hình do Google cung cấp tham số mà tất cả trình kết nối sử dụng. Biết cách điều chỉnh các cài đặt này có thể đơn giản hoá đáng kể việc 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 vấn đề này.

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 công suất cho một FullTraversalConnector:

Xem xét 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 thông số của tệp cấu hình, hãy tham khảo Các thông 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ử dụng trình duyệt đơn để 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 chuyển đổi, mỗi trình xử lý có cấu hình riêng, tập trung vào các phiên bản trạng thái của mục (NEW_ITEM, MODIFIED, v.v.). Bảng sau đây liệt kê cài đặt cấu hình để cải thiện thông lượng:

.
Xem xétMô 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 thông số của tệp cấu hình, hãy tham khảo Các thông 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 SDK hết thời gian chờ hoặc bị gián đoạn trong khi tải các tệp lớn lên, 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 thời gian thực thi luồng phải xử lý một mục. Thời gian chờ mặc định trong SDK là 60 giây cho các luồng chuyển đổi. Ngoài ra, nếu bạn gặp phải các yêu cầu API riêng lẻ 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 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.