blob: 4b07ed4541beca3da172ae85645a46188f914298 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
* Tracks ephemeralForTest's memory usage metrics on a consistent workload.
*/
(function() {
"use strict";
const storageEngine = jsTest.options().storageEngine;
if (storageEngine != "ephemeralForTest") {
return;
}
let testColl1 = db.jstests_ephemeralForTest_metrics1;
let testColl2 = db.jstests_ephemeralForTest_metrics2;
let testColl3 = db.jstests_ephemeralForTest_metrics3;
const s1 = startParallelShell(() => {
testColl1 = db.jstests_ephemeralForTest_metrics1;
for (let i = 0; i < 50000; ++i) {
assert.writeOK(testColl1.save({x: Math.floor(Math.random() * 1024 * 1024), y: "y"}));
}
assert.commandWorked(testColl1.createIndex({x: 1, y: 1}));
for (let i = 0; i < 50000; ++i) {
assert.writeOK(testColl1.save({x: Math.floor(Math.random() * 1024 * 1024), y: "y"}));
}
});
const s2 = startParallelShell(function() {
testColl2 = db.jstests_ephemeralForTest_metrics2;
for (let i = 0; i < 50000; ++i) {
assert.writeOK(testColl2.save({x: "x", y: Math.floor(Math.random() * 1024 * 1024)}));
}
for (let i = 0; i < 100; ++i) {
assert.commandWorked(
testColl2.updateOne({x: "x"}, {$set: {x: Math.floor(Math.random() * 1024 * 1024)}}));
}
});
const s3 = startParallelShell(function() {
testColl3 = db.jstests_ephemeralForTest_metrics3;
for (let i = 0; i < 50000; ++i) {
assert.writeOK(testColl3.save({x: i, y: Math.floor(Math.random() * 1024 * 1024)}));
}
});
s1();
s2();
s3();
let serverStatus = db.serverStatus().ephemeralForTest;
print("Total Memory Usage: " + serverStatus.totalMemoryUsage + " Bytes.");
print("Total Number of Nodes: " + serverStatus.totalNodes + ".");
print("Average Number of Children: " + serverStatus.averageChildren + ".");
for (let i = 0; i < 50000; ++i) {
assert.commandWorked(testColl3.deleteOne({x: i}));
}
serverStatus = db.serverStatus().ephemeralForTest;
print("After Deletion:");
print("Total Memory Usage: " + serverStatus.totalMemoryUsage + " Bytes.");
print("Total Number of Nodes: " + serverStatus.totalNodes + ".");
print("Average Number of Children: " + serverStatus.averageChildren + ".");
})();
|