Tăng performance trong mongodb

Có cách nào ngoại trừ index mà có thể nâng performance trong mongodb lên cao được không ạ

Tớ nghĩ là có.
Cơ mà cậu có vấn đề gì với index thế?

1 Like

em muốn tăng thêm throughput thôi ạ, vì e đặt index ở trong db có 10tr bản ghi thì cũng đang được 300-400/s rồi ạ, nhưng vẫn đang muốn nâng cao thêm nữa ý ạ, nên là đang ko biết còn cách nào khác không

Uhm.
Tớ đoán nhé, 300 - 400 QPS đã đủ cho cậu rồi, phải không? :smile:

Nếu như index không đủ thỏa mãn cậu, cậu cần phải điều tra thêm nhiều hơn. Cậu cần profiling database của cậu để biết chỗ nào có thể cải thiện được. Tớ không thể nói cậu nên làm gì để ngay lập tức cải thiện, khi chưa hiểu về database bên cậu.
Nếu cậu muốn một cách quick and dirty, mà không cần bỏ công tìm hiểu database của cậu, cậu có thể cân nhắc tăng số lương connection của DB lên. Nó có thể sẽ giúp cậu tăng throughput đấy.

1 Like

nếu mà profiling thì nên nhìn vào những số liệu nào để biết được là đang chậm ở đâu vậy ạ

e có thử tăng số thread lúc test nhưng số connection đến mongo cũng chỉ gần 150 chứ không hơn được, không biết là do đâu vậy ạ

Disclaimer: tớ không phải chuyên gia về mongoDB :sweat_smile:

nếu mà profiling thì nên nhìn vào những số liệu nào để biết được là đang chậm ở đâu vậy ạ

Khi profiling, cậu nên nhận được report cho các câu query chậm. Ở đó cậu có thể tìm thêm các thông tin về thời gian thực hiện các bước, data size, etc. một cách dễ dàng.
Những thông tin đó sẽ cho cậu thêm suy đoán bước nào của câu query chậm đó gặp vấn đề, và tìm cách để cải thiện bước đó.
Khi cậu giảm được thời gian thực thi của các query chậm nhất và xuất hiện nhiều nhất, throughput của cậu nhìn chung sẽ tăng lên. Tất nhiên là cậu sẽ cần tốn kha khá công sức để phân tích các report đó :sweat_smile:


e có thử tăng số thread lúc test nhưng số connection đến mongo cũng chỉ gần 150 chứ không hơn được, không biết là do đâu vậy ạ

Tớ không rõ về hệ thống của cậu ra sao. Cậu cần thêm thông tin để biết lý do của việc đó.
Tớ có thể cho cậu một vài khả năng hay gặp cho vấn đề cậu mô tả ở trên thế này:

  1. Tăng thread tạo traffic tới database không đồng nghĩa với tăng traffic tới database, nhất là khi cậu tăng thread trên 1 máy. Cậu chỉ có 1 số lượng CPU hữu hạn thôi mà :sweat_smile:
    Cậu có thể xác nhận điều này bằng cách tạo traffic từ nhiều hơn 1 máy.
  2. Cậu có thể đã set max connection của mongoDB là 150 @@
    Cậu có thể check config để xác nhận điều này.

Tunning performance không dễ đâu cậu @@ Vậy nên, trừ khi DB của cậu thực sự có vấn đề, tìm cách phổ thông để tunning DB thường lợi bất cập hại.

Hope it helps!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?