Đ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. Việc biết cách điều chỉnh các chế độ cài đặt này 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à chế độ cài đặt dùng để giải quyết vấn đề.

Thông lượng lập chỉ mục của FullTraversalConnector ở mức thấp

Bảng sau 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() sẽ được xử lý theo lô trước khi tìm nạp thêm APIOperation(). SDK chờ xử lý phân vùng hiện tại 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. 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 phải đợi nhiều hơn thay cho SDK. 50 Nếu bộ nhớ còn trống, hãy thử tăng partitionSize lên 1.000 hoặc nhiều hơn.
batch.batchSize Số lượng yêu cầu được phân lô cùng nhau. Khi kết thúc 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 sẽ cần nhiều thời gian chờ hơn. 10 Hãy thử giảm kích thước lô mã.
batch.maxActiveBatches Số lượng lô được phép thực thi đồng thời. 20 Nếu giảm batchSize, bạn sẽ tăng maxActiveBatches theo công thức sau:

maxActiveBatches = (partitionSize / batchSize) + 50. Ví dụ: nếu partititionSize của bạn là 1000 và batchSize là 5, thì maxActiveBatches của bạn sẽ là 250. 50 phần bổ sung này là vùng đệm cho các yêu cầu thử lại. Việc tăng này cho phép trình kết nối phân theo nhóm tất cả yêu cầu mà không chặn.
traverse.threadPoolSize Số 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 duy nhất tìm nạp các thao tác (thường là đối tượng RepositoryDoc) theo tuần tự, nhưng API gọi xử lý song song bằng cách sử dụng số lượng luồng threadPoolSize. Mỗi luồng xử lý một mục tại một thời điểm. Theo mặc định, 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 lên 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ề tham số của tệp cấu hình, hãy tham khảo Tham số cấu hình do Google cung cấp.

Thông lượng lập chỉ mục của ListTraversalConnector ở mức thấp

Theo mặc định, trình kết nối triển khai ListTraversalConnnector sẽ sử dụng một trình truyền tải 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 duyệt 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 thu thập dữ liệu riêng lẻ, trong đó t1, t2, t3, ... là tên riêng biệt của từng trình duyệt. Mỗi trình duyệt được đặt tên có một tập hợp chế độ cài đặt riêng được xác định bằng tên riêng biệt của trình chuyển tải đó, chẳng hạn như traversers.t1.hostloadtraversers.t2.hostloadMột máy bay ngangSử dụng chế độ cài đặt này để thêm các trình truyền tải bổ sung
traversers.t1.hostload = nXác định số lượng luồng (n) cần dùng để lập chỉ mục đồng thời các mục.5Thử nghiệm đ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ữ của mình. Bắt đầu bằng các giá trị từ 10 trở lên.
schedule.pollQueueIntervalSecs = sXác định số giây, s, để 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 về các mục, 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 phản hồi của cuộc thăm dò ý kiến trống, trình kết nối sẽ đợi s giây trước khi thử lại. Cài đặt này chỉ được ListConnector 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 trình chuyển tải t1 chỉ lập chỉ mục các mục có các trạng thái đó.Một lượt kiểm tra trình duyệt cho tất cả trạng tháiThử nghiệm bằng cách tạo cuộc thăm dò ý kiến của nhiều trình duyệt cho nhiều trạng thái.

Để biết thêm thông tin về tham số của tệp cấu hình, hãy tham khảo 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 các tệp lớn lên

Nếu bạn gặp phải tình trạng hết 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 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 truyền tải. Ngoài ra, nếu bạn gặp thời gian chờ của 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 Thời gian chờ kết nối dành cho các yêu cầu API lập chỉ mục. 120 giây.
indexingService.readTimeoutSeconds Thời gian chờ đọc của các yêu cầu API lập chỉ mục. 120 giây.