2014-07-04 21 views
5

Chúng tôi có một vấn đề lớn với cụm ES của chúng tôi. Một trong các nút của chúng tôi luôn ở mức 99% CPU. Đối với một số lý do nó có khoảng 3 lần nhiều chủ đề đang chạy cho quá trình elasticsearch so với nút bình thường. Tôi đã đính kèm 2 ảnh chụp màn hình htop cho 2 nút, một ảnh bị quá tải và một nút khác bình thường. Xin cho biết!Elasticsearch quá nhiều chủ đề đang chạy

Cảm ơn bạn!

quá tải Node overloaded node

Bình thường Node normal node

CẬP NHẬT

  1. kiến ​​trúc Cluster:

    11 nút, 2 thạc sĩ chuyên dụng, 9 nút dữ liệu.

  2. Nodes Phần cứng Thuộc tính

    Masters:

    • CPU: 8x Intel (R) Xeon (R) CPU E5-1620 v2 @ 3.70GHz
    • Bộ nhớ: 32GB
    • đĩa: 120GB

    Slaves:

    1. CPU: 12x Intel (R) Xeon (R) CPU E5-1650 v2 @ 3.50GHz
    2. Bộ nhớ: 64GB
    3. đĩa: 2.7T
  3. Tài liệu trong cluster:

    ~ 200 triệu

  4. Index conf:

    Mỗi chỉ số được chia làm 10 mảnh (5 tiểu học, 5 bản sao)

  5. Truy vấn:

    Tìm kiếm RT: ~ 250/s, Index RT: ~ 6K/s

  6. OS

    Ubuntu 12.04.4 LTS

  7. JAVA

java version "1.7.0_60" 
Java(TM) SE Runtime Environment (build 1.7.0_60-b19) 
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode) 
+2

Tôi e rằng ảnh chụp màn hình của bạn không phải là rất hữu ích. Tôi sẽ thêm vào các số sau: số lượng nút trong cụm, bộ nhớ, CPU và đĩa cho mỗi nút, số lượng tài liệu trong cụm, cấu hình cụm và chỉ mục tổng thể, ánh xạ, khối lượng truy vấn, khối lượng chèn, đầu ra từ chẩn đoán ES như nút số liệu thống kê, hệ điều hành, phiên bản jvm. –

+0

@JohnPetrone Tôi đã đăng cập nhật với thông tin bắt buộc. Cảm ơn bạn! –

Trả lời

1

Dựa trên thông tin thưa thớt trong tầm tay, tôi có một vài suy đoán rằng có khả năng là sự tồn tại m:

  • Mảnh không cân bằng tốt và bạn đang có đốm nóng. Đảm bảo rằng các chỉ mục được sử dụng nhiều nhất của bạn được phân loại theo cách mà mỗi máy có thể thực hiện chia sẻ công việc của mình. Ngoài ra, hãy xem xét cấp chỉ mục "index.routing.allocation.total_shards_per_node" để cố gắng thực hiện một số dư bằng nhau.

  • Có thể ở bên tìm kiếm, bạn chỉ định rằng tìm kiếm phải luôn đi đến phân đoạn "chính". Chỉ định chính không phải là thứ cân bằng, vì vậy về cơ bản, nút đầu tiên có phân đoạn chính và các nút khác xuất hiện sau tất cả đều là thứ hai.

+0

Cảm ơn bạn đã trả lời. Chúng tôi đã có một tình huống điểm nóng liên quan đến việc chúng tôi có 9 nút dữ liệu với '10 mảnh' cho mỗi chỉ mục để luôn có một nút có thể mất 2 mảnh. Đối với mục đích thử nghiệm, chúng tôi đã thay đổi bậc thầy phụ của mình thành nút dữ liệu và di chuyển được phân bổ lại các mảnh - không may thay đổi. Giới thiệu về các yêu cầu tìm kiếm, chúng tôi có cấu hình mặc định, do đó, nó đang truy vấn các bản sao. –

+0

Thử cài đặt: "index.routing.allocation.total_shards_per_node" thành 1 cho mỗi chỉ mục sẽ buộc cân bằng bằng nhau giả định 10 mã dữ liệu và 10 phân đoạn (bao gồm cả bản sao) cho mỗi chỉ mục. Lưu ý: NÀY NÊN CHỈ ĐƯỢC DÀNH CHO KIỂM TRA. Về lâu dài, bạn có thể tốt hơn với nhiều phân đoạn hơn cho mỗi chỉ mục, điều này sẽ cho phép tổng số của bạn linh hoạt. – ppearcy

2

Đã tìm ra.

[2014-07-07 13:38:42,521][DEBUG][index.search.slowlog.query] [n013.my_cluster] [my_index][3] took[2s], took_millis[2066], types[my_type], stats[], search_type[QUERY_THEN_FETCH], total_shards[5], source[{"size":20,"from":0,"sort":{"_score":"desc"},"query":{"filtered":{"query":{"query_string":{"query":"my eight words space separated query","fields":["description","tags"],"default_operator":"OR"}},"filter":{"and":[{"range":{"ats":{"lte":1404730800}}},{"terms":{"aid":[1,2,4]}}]},"_cache":false}}}], extra_source[]

Vấn đề cư trú bên trong "filter": {"and": ...}, trông giống như các loại truy vấn nặng cho ES so với bool truy vấn loại. Vì vậy, bất cứ khi nào bạn muốn áp dụng một số filters, hãy sử dụng bộ lọc bool (must, must_notshould)

reff: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html

Cheers!

Các vấn đề liên quan