[SERVER-16775] Steady decline in performance in capped collections under wiredTiger Created: 08/Jan/15  Updated: 15/Jan/15  Resolved: 13/Jan/15

Status: Closed
Project: Core Server
Component/s: Performance, Storage
Affects Version/s: 2.8.0-rc4
Fix Version/s: 2.8.0-rc5

Type: Bug Priority: Critical - P2
Reporter: David Daly Assignee: Alexander Gorrod
Resolution: Done Votes: 0
Labels: 28qa, wiredtiger
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File capped.png     PNG File oplog-master.png     PNG File oplog-profile.png     PNG File oplog-rc4.png    
Issue Links:
Related
is related to SERVER-16235 Performance issue in capped collectio... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

Seeing steady and continual drop in insert performance in capped collections. Using https://github.com/mongodb/mongo/commit/8197195ce0faee1df316b2b45649cbc61dcf3ec8

Starting at 40k inserts/second and dropping to 16k inserts/second over 15 minutes

10000 40322
20000 41152
30000 40000
40000 41152
50000 41152
60000 40322
70000 40983
80000 40000
90000 40983
100000 39525
110000 40816
120000 40816
130000 40000
140000 40816
150000 40000
160000 40983
170000 39370
180000 40322
190000 40650
200000 40322
210000 40983
220000 39682
230000 40160
240000 40983
 
...
15720000 19011
15730000 18903
15740000 19047
15750000 18552
15760000 18867
15770000 19047
15780000 19047
15790000 19011
15800000 19120
15810000 18656
15820000 18975
15830000 18939
15840000 19011
15850000 19083
15860000 18726
15870000 18903
15880000 18656
15890000 18975
15900000 19047
15910000 18832
15920000 18975
15930000 15625
 

 function create(size) {
     db.createCollection("c", {capped: true, size: size})
 }
      
 function insert(count) {
     var every = 10000
     var bulk = db.c.initializeUnorderedBulkOp();
     var t = new Date()
     for (var i=0; i<=count; i++) {
         if (i>0 && i%every==0) {
             bulk.execute();
             bulk = db.c.initializeUnorderedBulkOp();
             tt = new Date()
             print(i, Math.floor(every / (tt-t) * 1000))
             t = tt
         }
         bulk.insert({})
     }
 }
  
 create(10000000)
 insert(100000000)



 Comments   
Comment by Michael Cahill (Inactive) [ 13/Jan/15 ]

Fixed in WiredTiger for RC5.

Comment by David Daly [ 08/Jan/15 ]

Output files from server status, gdbmon, etc linked above as Timeseries data

Comment by David Daly [ 08/Jan/15 ]

Steady decline in insert throughput. From the chart. Bytes in cache and pages in cache going steadily up. Dirty bytes and dirty pages oscillates. Is there significance to either of those?

Comment by David Daly [ 08/Jan/15 ]

This is hit with the same tests as SERVER-16235, but manifests differently. The test has to be run longer, and it's a more gradual degradation of performance.

Generated at Thu Feb 08 03:42:13 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.