nền cao tuôn ra avod mongodb


7

câu hỏi tương tự: Khóa toàn cầu cao% trên Mongodb

Tổng quat

Chúng tôi có một bản sao thiết lập sản xuất được đặt trong v2.4.8 mongodb chạy trên năm máy ảo RAM 4 nhân, 28gb với ổ cứng datadisk tiêu chuẩn chạy trên 64 bit CentOS 6. Chúng tôi phân phối số lần đọc trên các máy phụ với tốc độ khoảng 600-700 op / giây / giây. Việc sử dụng CPU là khoảng 15% mỗi thứ cấp. Sử dụng CPU là ~ 5-10% trên chính. Chúng tôi hiện đang gặp vấn đề với khóa ghi toàn cầu cao và xóa phông nền trên bản chính. Khóa ghi toàn cầu của chúng tôi nằm trong khoảng từ 30 đến 40% trên chính của chúng tôi mặc dù chỉ có ~ 200 lần chèn / cập nhật / xóa mỗi giây (xem đầu ra MMS bên dưới). Chúng tôi cũng đã nhận thấy rằng avg nền của chúng tôi là từ 2 đến 15 giây. Thật không may, điều này gây ra một lượng truy vấn chậm nghiêm trọng (tối đa 50 cập nhật / chèn> 100ms mỗi giây). Chúng tôi đã xem xét shending nhưng cảm thấy rằng mongodb nên hoạt động tốt hơn thế này.

Kiểm tra

Điều này nói với tôi rằng chúng tôi đang gặp vấn đề khi ghi vào ổ cứng nhưng việc chạy một bộ điều chỉnh đơn giản cho thấy việc sử dụng của chúng tôi trên sdc (đĩa chúng tôi đang ghi) không được tối đa hóa và nằm trong khoảng từ 20 đến 40%:

$ iostat -x 1

Kết quả trong 4 giây:

Linux 2.6.32-279.14.1.el6.openlogic.x86_64 (mongodb3-wus)   05/08/2014  _x86_64_    (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.28    0.00    1.82    5.50    0.00   87.40

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.05     0.04    0.06    0.11     3.25     1.23    26.13     0.00   18.07  14.87   0.25
sdc               0.02   216.57    1.70   95.83   216.22  3106.45    34.07     9.27   95.07   4.32  42.11
sdb               0.00    11.35    0.01    0.56     0.05    95.25   169.44     0.01   18.44   0.11   0.01

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.56    0.00    2.05    0.00    0.00   95.38

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00   15.00     0.00   624.00    41.60     0.20   11.80  13.47  20.20
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.07    0.00    3.07    0.26    0.00   93.61

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    3.00   15.00    24.00   352.00    20.89     0.25   15.17  13.44  24.20
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.33    0.00    1.79    0.77    0.00   94.10

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00    11.00    0.00   17.00     0.00   768.00    45.18     0.26   15.18  14.35  24.40
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Tôi cũng đã chạy thử nghiệm tải đơn giản bằng cách sử dụng dd:

dd if=/dev/zero of=/dev/sdc1 count=512 bs=1024k

Kết quả của thử nghiệm này cho thấy tốc độ ghi là ~ 840 MB / s:

512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 0.638451 s, 841 MB/s

Kết quả Ulimit cho mongodb:

[mongod #8066 -- limits]
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            10485760             unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             224341               224341               processes 
Max open files            20000                20000                files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       224341               224341               signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

MMS, Mongifier, Mongotop cho chính

Tôi cũng đã cung cấp đầu ra MMS, đầu ra và mongotop của chúng tôi dưới đây:

! MMS: đầu ra MMS bấm vào đây

Bộ điều chỉnh:

connected to: 127.0.0.1:27019
    insert  query update delete getmore command flushes mapped  vsize    res faults      locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn set repl       time 
        26     41     95     *0     294   178|0       0  52.4g   107g  25.1g      0  chronicle:5.6%          0      65|2     1|4    45k   136k   486 rs0  PRI   23:15:18 
        96    158    524     *0    1266   783|0       0  52.4g   107g  25.1g      1 chronicle:82.9%          0       0|0     0|0   235k   759k   486 rs0  PRI   23:15:19 
        33     62    109     *0     637   253|0       0  52.4g   107g  25.1g      0      local:7.2%          0       0|0     0|0    78k   208k   486 rs0  PRI   23:15:20 
        58     89    153     *0     920   321|0       0  52.4g   107g  25.1g      0     local:16.1%          0       0|0     0|1   113k   569k   486 rs0  PRI   23:15:21 
        55     95    138     *0     887   322|0       0  52.4g   107g  25.1g      0 chronicle:20.3%          0       0|0     0|0   111k   297k   486 rs0  PRI   23:15:22 
        24     59     81     *0     217   174|0       0  52.4g   107g  25.1g      1         .:88.5%          0      23|0     0|1    46k   141k   486 rs0  PRI   23:15:23 
        51     64    136     *0     760   263|0       0  52.4g   107g  25.1g      0 chronicle:17.1%          0       0|0     0|0    93k   266k   486 rs0  PRI   23:15:24 
        42     60    129     *0     695   288|0       0  52.4g   107g  25.1g      0      local:7.3%          0       0|0     0|0    90k   253k   486 rs0  PRI   23:15:25 
        33     55     99     *0     693   215|0       0  52.4g   107g  25.1g      1      local:3.1%          0       0|0     0|0    76k   455k   486 rs0  PRI   23:15:26 
        45     70     95     *0     763   250|0       0  52.4g   107g  25.1g      1      local:9.0%          0       0|0     0|0    88k   225k   486 rs0  PRI   23:15:27 

Mongotop:

connected to: 127.0.0.1:27019

                                     ns       total        read       write     2014-05-07T23:09:17
                      chronicle.ledgers        93ms         0ms        93ms
                         local.oplog.rs        47ms        47ms         0ms
                         cliqueme.sites        13ms         0ms        13ms
                    chronicle.analytics         4ms         0ms         4ms
          chronicle_test.system.indexes         0ms         0ms         0ms
       chronicle_test.system.namespaces         0ms         0ms         0ms
            chronicle_test.system.users         0ms         0ms         0ms

                                     ns       total        read       write     2014-05-07T23:09:18
                      chronicle.ledgers       101ms         0ms       101ms
                         local.oplog.rs        66ms        66ms         0ms
                       cliqueme.cliques        19ms         0ms        19ms
                    chronicle.analytics         6ms         0ms         6ms
                         cliqueme.sites         4ms         0ms         4ms
                           local.slaves         1ms         0ms         1ms
                 cliqueme.notifications         0ms         0ms         0ms
                      cliqueme.messages         0ms         0ms         0ms

                                     ns       total        read       write     2014-05-07T23:09:19
                         local.oplog.rs        66ms        66ms         0ms
                      chronicle.ledgers        52ms         0ms        52ms
                    chronicle.analytics        24ms         0ms        24ms
                       cliqueme.cliques         7ms         0ms         7ms
                         cliqueme.sites         4ms         0ms         4ms
                           local.slaves         1ms         0ms         1ms
                 cliqueme.notifications         0ms         0ms         0ms
                      cliqueme.messages         0ms         0ms         0ms

                                     ns       total        read       write     2014-05-07T23:09:20
                      chronicle.ledgers      1842ms         0ms      1842ms
                         cliqueme.sites       885ms         0ms       885ms
                       cliqueme.cliques        70ms         0ms        70ms
                         local.oplog.rs        55ms        55ms         0ms
                    chronicle.analytics         5ms         0ms         5ms
                           local.slaves         1ms         0ms         1ms
                 cliqueme.notifications         0ms         0ms         0ms
                      cliqueme.messages         0ms         0ms         0ms

                                     ns       total        read       write     2014-05-07T23:09:21
                      chronicle.ledgers        84ms         0ms        84ms
                         local.oplog.rs        64ms        64ms         0ms
                         cliqueme.sites        41ms         0ms        41ms
                       cliqueme.cliques        11ms         0ms        11ms
                    chronicle.analytics         4ms         0ms         4ms
          chronicle_test.system.indexes         0ms         0ms         0ms
       chronicle_test.system.namespaces         0ms         0ms         0ms
            chronicle_test.system.users         0ms         0ms         0ms

                                     ns       total        read       write     2014-05-07T23:09:22
                      chronicle.ledgers       276ms         0ms       276ms
                         local.oplog.rs        90ms        90ms         0ms
                       cliqueme.cliques        16ms         0ms        16ms
                    chronicle.analytics         6ms         0ms         6ms
                         cliqueme.sites         4ms         0ms         4ms
                           local.slaves         1ms         0ms         1ms
                 cliqueme.notifications         0ms         0ms         0ms
                      cliqueme.messages         0ms         0ms         0ms

Có ai có bất kỳ đề xuất nào về cách chúng tôi có thể tối ưu hóa hiệu suất này? Chúng tôi đã nghe nói rằng một số người có thể nhận được tới 2K viết mỗi giây trong standalones? Việc chuyển đổi từ ổ cứng sang RAID hoặc SSD có thể giải quyết điều này?

Chúng tôi muốn sử dụng shending như là phương sách cuối cùng.

CẬP NHẬT: chúng tôi vẫn không thể giải quyết vấn đề này nhưng vì chúng tôi cần một giải pháp nhanh chóng đã chuyển sang một cụm bị che chắn. Chúng tôi vẫn muốn tìm ra vấn đề bởi vì nó vẫn đang ảnh hưởng đến chúng tôi trong cụm bị che chắn.


@Nyxynyx bạn có lời khuyên nào dựa trên: dba.stackexchange.com/questions/55922/ . Cám ơn rất nhiều!
Nick Swenson

Câu trả lời:


4

Chỉ số mongo của bạn cho thấy số lượng cập nhật cao hơn so với chèn. Một điều có thể gây ra sự cố khóa ghi cao là nếu các cập nhật của bạn thường làm tăng kích thước tài liệu và khiến tài liệu di chuyển trong tệp dữ liệu. Chúng tôi đã tự mình tìm hiểu điều này, nhưng chúng tôi đã làm việc với sự hỗ trợ của mongo vào thời điểm đó để tìm ra vì vậy tôi không nhớ số liệu hoặc chỉ số nào sẽ cho bạn biết đây là trường hợp. Điều này có thể chỉ là một vấn đề nếu kích thước tài liệu của bạn rất lớn. Cuối cùng chúng tôi đã tách ra một mảng phụ luôn được thêm vào bộ sưu tập của riêng mình để chúng tôi chỉ thêm các tài liệu mới thay vì sửa đổi một mảng hiện có.

Cờ usePowerOf2Sizes trên bộ sưu tập cũng có thể giúp giảm bớt điều này bằng cách cung cấp cho phòng tài liệu để phát triển. Đây rõ ràng là mặc định bây giờ trên 2.6, nhưng bạn sẽ cần bật nó nếu bạn chưa bật 2.6. Cài đặt được mô tả ở đây: http://docs.mongodb.org/manual/reference/command/collMod/


1
bạn vừa làm một người đàn ông trưởng thành khóc. bạn không biết tôi đã cố gắng khắc phục vấn đề này bao lâu (thực tế hàng trăm giờ). Tôi thực sự đã kiểm tra kích thước tài liệu tăng lên này một vài lần nhưng hoàn toàn quên rằng một trong những mô hình cũ của chúng tôi cũng sử dụng mảng phụ. Ngay sau khi tôi chuyển sang sử dụng cờ powerOf2Sizes, khóa ghi ngay lập tức giảm xuống phụ 10%, hiện tượng xóa nền gần 1 giây. Thời gian phản hồi của chúng tôi từ các máy chủ của chúng tôi ít hơn bao giờ hết. cảm ơn bạn rất nhiều vì đã chia sẻ kinh nghiệm của bạn nghiêm túc. tôi có thể gửi cho bạn một giỏ quà hoặc một con chó con?
Nick Swenson

Tôi muốn có một con chó con!!!
Asya Kamsky
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.