Kích thước bộ nhớ tối đa đặt Elasticsearch

Kich Thuoc Bo Nho Toi Da Dat Elasticsearch



“Bộ nhớ là một tài nguyên thiết yếu nhưng có hạn khi làm việc với Elasticsearch. Điều này là do Lucene sẽ tận dụng mọi bộ nhớ có sẵn. Tuy nhiên, khi cấu hình sai, cài đặt bộ nhớ có thể dẫn đến hiệu suất thấp và sử dụng bộ nhớ không hiệu quả ”.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cấu hình Kích thước đống JVM tối đa và tối thiểu khi làm việc với Elasticsearch.







Bắt đầu nào.



Bộ nhớ Heap là gì?

Trong ngữ cảnh của Elasticsearch, bộ nhớ Heap đề cập đến tổng dung lượng bộ nhớ được phân bổ cho Máy ảo Java trong một nút Elasticsearch.



Elasticsearch sẽ đặt mặc định kích thước JVM Heap dựa trên tổng bộ nhớ của hệ thống cơ sở và vai trò của nút. Điều này có nghĩa là phân bổ kích thước bộ nhớ heap có thể khác nhau tùy thuộc vào việc đó có phải là nút chính, dữ liệu, nhập, data_cold, v.v.





Đối với hầu hết các môi trường sản xuất, việc cho phép Elasticsearch quản lý kích thước đống được khuyến khích và là quá đủ.

GHI CHÚ : Nếu bạn đang chạy Elasticsearch trong Docker, tổng bộ nhớ heap dựa trên tổng kích thước của vùng chứa docker chứ không phải máy chủ của Docker.



Định cấu hình kích thước đống tối thiểu và tối đa

Để định cấu hình kích thước heap tối thiểu và tối đa, chúng ta có thể sử dụng các tham số Xms và Xmx. Các thăm dò Elasticsearch đang đặt bộ nhớ tối đa không quá 50% tổng bộ nhớ. Điều này là do ngoài JVM Heap, Elasticsearch yêu cầu nhiều bộ nhớ hơn cho các hoạt động khác như bộ đệm hệ thống tệp, giao tiếp mạng, v.v. Tương tự, JVM sẽ sử dụng một phần của 50% bộ nhớ còn lại.

Thứ hai, không đặt các giá trị xms và xmx vượt quá ngưỡng của oops. Để có cấu hình an toàn, hãy giới hạn ở 26GB hoặc 30GB trên một số hệ thống.

Bạn có thể kiểm tra ngưỡng trong nhật ký Elasticsearch.

catasticsearch.log | grep 'con trỏ đối tượng'

Bạn sẽ thấy một mục nhập như được hiển thị:

[2022-08-19T20: 01: 50,275] [INFO] [o.e.e.NodeEnosystem] [debian11] heap size [1,9gb], con trỏ đối tượng thông thường được nén [true]
[2022-08-19T20: 08: 07,207] [INFO] [o.e.e.NodeEnosystem] [debian11] heap size [1,9gb], con trỏ đối tượng thông thường được nén [true]
[2022-08-19T20: 36: 47,244] [INFO] [o.e.e.NodeEnosystem] [debian11] heap size [1,9gb], con trỏ đối tượng thông thường được nén [true]

Bạn cũng có thể truy vấn API thông tin các nút cho các giá trị xms và xmx:

curl -X TẢI localhost: 9200 / _nodes / _all / jvm? pretty

Bạn sẽ thấy một đầu ra như được hiển thị:

Đặt kích thước đống tối thiểu và tối đa

Để sửa đổi các giá trị của Kích thước đống JVM, bạn cần thêm tệp cấu hình trong thư mục /etc/elasticsearch/jvm.options.d. Tệp này phải kết thúc bằng phần mở rộng .options.

Ví dụ:

$ sudo touch /etc/elasticsearch/jvm.options.d/heap.options

Chỉnh sửa tệp

$ sudo nano /etc/elasticsearch/jvm.options.d/heap.options

Thêm kích thước bộ nhớ heap tối thiểu và tối đa mong muốn.

Ví dụ: mục nhập bên dưới định cấu hình kích thước heap tối thiểu và tối đa thành 4GB.

Lưu tệp và khởi động lại dịch vụ Elasticsearch.

Sự kết luận

Trong hướng dẫn này, bạn đã học JVM Heap trong ngữ cảnh của Elasticsearch, cách Elasticsearch định cấu hình JVM Heap và cách bạn có thể sửa đổi kích thước heap.

Cảm ơn vì đã đọc!!