Yếu tố nào đóng góp vào tỷ lệ phần trăm khóa với MongoDB


7

Chúng tôi đang cố gắng tối ưu hóa tốt hơn cách chúng tôi sử dụng phiên bản MongoDB của mình. Chúng tôi dường như thường xuyên nhận được tỷ lệ phần trăm khóa cao và đang tìm cách giúp giảm thiểu điều đó. Đây là một số đầu ra mong muốn:

insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn       time 
     1    107    186      0       0     196       0  3.06g   7.3g   333m      0     11.2          0       0|0     2|0    66k   224k    85   15:55:22 
     2    102    285      0       0     296       0  3.06g   7.3g   333m      0     15.7          0       0|0     2|0    89k   216k    84   15:55:23 
     2     79    325      0       0     335       0  3.06g   7.3g   333m      0     20.2          0       0|0     3|0    96k   149k    85   15:55:24 
     2     92    193      0       0     203       0  3.06g   7.3g   333m      0     10.9          0       1|1     6|1    63k   149k    86   15:55:25 
     3    102    235      0       0     245       0  3.06g   7.3g   331m      0     14.5          0       0|0     2|0    75k   177k    84   15:55:26 
     3     79    267      0       0     275       0  3.06g   7.3g   331m      0     16.5          0       1|0     2|0    80k   133k    86   15:55:27 
     2     66    219      0       0     226       0  3.06g   7.3g   264m      0     14.3          0       0|0     2|0    66k   112k    88   15:55:28 
     2    100    201      0       0     211       0  3.06g   7.3g   334m      0     10.2          0       0|0     3|0    67k   142k    87   15:55:29 
     3    118    227      0       0     244       0  3.06g   7.3g   322m      0     13.8          0       3|1     6|1    78k   150k    87   15:55:30 
     2    112    189      0       0     198       0  3.06g   7.3g   334m      0     10.8          0       0|1     2|2    64k   213k    87   15:55:31 
     2     80    266      0       0     278       0  3.06g   7.3g   246m      0     15.8          0       0|1     3|1    82k   179k    86   15:55:32 
     1     82    307      0       0     314       0  3.06g   7.3g   334m      0     18.1          0       0|0     2|0    89k   158k    86   15:55:33 
     2     94    278      0       0     285       0  3.06g   7.3g   334m      0     17.1          0       0|0     0|0    83k   184k    86   15:55:34 
     3    101    246      0       0     256       0  3.06g   7.3g   332m      0     14.2          0       0|0     1|0    82k   179k    86   15:55:35 
     3     99    203      0       0     213       0  3.06g   7.3g   334m      0     12.5          0       0|0     2|0    67k   154k    88   15:55:36 
     2    115    174      0       0     189       0  3.06g   7.3g   335m      0       11          0       1|0     3|0    63k   172k    88   15:55:37 
     2     97    199      0       0     209       0  3.06g   7.3g   335m      0     10.3          0       0|0     2|0    65k   192k    87   15:55:38 
     2    103    366      0       0     373       0  3.06g   7.3g   334m      0     23.5          0       1|4     3|4   107k   256k    85   15:55:39 
     2    105    338      0       0     349       0  3.06g   7.3g   334m      0     22.9          0       0|0     1|0   101k   207k    83   15:55:40 

Điều này tốt hơn rất nhiều so với trước đây, nhờ lập chỉ mục tốt hơn. Tuy nhiên, rõ ràng chúng ta có nhiều việc phải làm. Những điều về tập dữ liệu này:

  • Phần cứng là một hộp 4-Proc, tải trung bình thường nằm trong khoảng từ 1,3 đến 1,9
  • 4GB RAM
  • Bộ lưu trữ được SAN hỗ trợ đang báo cáo độ trễ đạt cực đại ở mức 35ms, nhưng nhìn chung trong khoảng thời gian từ 5m đến 20ms.
  • Hoạt động I / O rất thấp
  • Các số 'qr' và 'qw' cho thấy chúng ta không phải chịu đựng hàng đợi lớn.

Chúng tôi đang sử dụng Mongo để theo dõi dữ liệu meta khi tài liệu đi qua nền tảng xử lý của chúng tôi. Tài liệu Mongo được tạo cho mỗi tài liệu thực tế mà chúng tôi có (tài liệu thực tế là các tệp kiểu Office cũ). Mỗi giai đoạn xử lý truy vấn một số thông tin, sau đó ghi lại thông tin (một số lần khá nhiều thông tin). Tùy thuộc vào dữ liệu chúng tôi làm việc với, có thể có nhiều giai đoạn.

Đây là một khối lượng công việc nặng cập nhật, vì vậy tỷ lệ phần trăm khóa là một thống kê tỷ lệ chính. Chúng tôi chưa được bảo vệ, phần lớn bởi vì chúng tôi cần phải xem một trường hợp duy nhất có thể mở rộng bao xa trước khi chúng tôi cần phải phân chia.

Những lĩnh vực nào khác mà chúng ta cần điều tra để giảm tỷ lệ khóa, hoặc chúng ta vừa chạm tường và cần phải bảo vệ?

Câu trả lời:


3

Đó là những thống kê thú vị. Tôi nghĩ rằng bạn có thể đang bị tăng trưởng kích thước tài liệu trong các bản cập nhật của mình, nơi tài liệu cần được sao chép vào một vị trí mới trên đĩa. Nếu đây thực sự là trường hợp, bạn có thể khôi phục một số phần trăm khóa đó bằng cách tự đệm tài liệu của mình. Nó thêm một chút phức tạp vào lần chèn đầu tiên, nhưng không quá tệ. Xem tài liệu này từ các tài liệu chính thức: http://www.mongodb.org/display/DOCS/Padding+Factor#PaddingFactor-ManualPadding

Chỉ là một ý tưởng ...


Và không phải là một điều tồi tệ ở đó, vì kích thước Tài liệu của chúng tôi thực sự tăng lên đáng kể từ lần chèn đầu tiên. Các đường dẫn xử lý dài hơn sẽ mang lại các tài liệu cuối lớn hơn. Chúng tôi có một số thông tin về số lượng đệm vì một trong những giai đoạn đầu tiên là xác định loại tệp.
sysadmin1138

Xin chào từ Fairfax. Hà.
Eve Freeman

Sau khi chạy một hoặc ba bộ thử nghiệm và xem yếu tố đệm, khá rõ ràng rằng chúng tôi đang tăng trưởng rất nhiều. Một lần chạy gần đây bắt đầu ở mức PF là 1,3 và cuối cùng là 1,89. Vì vậy, đệm bằng tay có vẻ rất có khả năng trong tương lai của chúng tôi.
sysadmin1138

Âm thanh đầy hứa hẹn!
Eve Freeman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.