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ét | Mô tả | Mặc định | Thay đổ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.hostload và traversers.t2.hostload | Một người di chuyển | Sử dụng chế độ cài đặt này để thêm những người di chuyển khác |
traversers.t1.hostload = n | Xác định số lượng luồng, n, được dùng để lập chỉ mục các mục cùng lúc. | 5 | Hã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 = s | Xá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ụng | 10 | Hã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_ITEM và status2 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ái | Thử 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. |