diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-16 14:27:10 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-10-16 14:27:10 +0200 |
commit | ad9e3074f2949a0ea604bc191109fa0ad7b8e2e4 (patch) | |
tree | d37909a4c869b55fbe3f887a1dcad25bd7358b31 | |
parent | 44837ee20acfdb0fe5f86826481fd708b19859bb (diff) | |
download | sink-ad9e3074f2949a0ea604bc191109fa0ad7b8e2e4.tar.gz sink-ad9e3074f2949a0ea604bc191109fa0ad7b8e2e4.zip |
Updated the information we collect for dummyresourcewritebenchmark
-rw-r--r-- | hawd_defs/dummy_write_in_process | 11 | ||||
-rw-r--r-- | hawd_defs/dummy_write_in_process_summary | 10 | ||||
-rw-r--r-- | tests/dummyresourcebenchmark.cpp | 8 | ||||
-rw-r--r-- | tests/dummyresourcewritebenchmark.cpp | 57 |
4 files changed, 43 insertions, 43 deletions
diff --git a/hawd_defs/dummy_write_in_process b/hawd_defs/dummy_write_in_process index 5f0a3e6..548ff95 100644 --- a/hawd_defs/dummy_write_in_process +++ b/hawd_defs/dummy_write_in_process | |||
@@ -1,9 +1,16 @@ | |||
1 | { | 1 | { |
2 | "name": "In process write using DummyResource", | 2 | "name": "In process write using DummyResource", |
3 | "description": "Measures performance of the DummyResource class", | 3 | "description": "Measures performance, memory usage and disk usage of writing to the db.", |
4 | "columns": [ | 4 | "columns": [ |
5 | { "name": "rows", "type": "int" }, | 5 | { "name": "rows", "type": "int" }, |
6 | { "name": "append", "type": "float", "unit": "ops/ms" }, | 6 | { "name": "append", "type": "float", "unit": "ops/ms" }, |
7 | { "name": "total", "type": "float", "unit": "ops/ms" } | 7 | { "name": "total", "type": "float", "unit": "ops/ms" }, |
8 | { "name": "onDisk", "type": "float", "unit": "kb" }, | ||
9 | { "name": "bufferSize", "type": "float", "unit": "kb" }, | ||
10 | { "name": "writeAmplification", "type": "float"}, | ||
11 | { "name": "rss", "type": "int", "unit": "kb" }, | ||
12 | { "name": "peakRss", "type": "int", "unit": "kb" }, | ||
13 | { "name": "rssGrowthPerEntity", "type": "int", "unit": "byte" }, | ||
14 | { "name": "rssWithoutDb", "type": "int", "unit": "kb" } | ||
8 | ] | 15 | ] |
9 | } | 16 | } |
diff --git a/hawd_defs/dummy_write_in_process_summary b/hawd_defs/dummy_write_in_process_summary new file mode 100644 index 0000000..878a386 --- /dev/null +++ b/hawd_defs/dummy_write_in_process_summary | |||
@@ -0,0 +1,10 @@ | |||
1 | { | ||
2 | "name": "Summary values for in process write using DummyResource", | ||
3 | "description": "Summary values that should remain stable over dataset sized.", | ||
4 | "columns": [ | ||
5 | { "name": "rssStandardDeviation", "type": "float", "unit": "SD" }, | ||
6 | { "name": "rssMaxDifference", "type": "float", "unit": "byte" }, | ||
7 | { "name": "timeStandardDeviation", "type": "float", "unit": "SD" }, | ||
8 | { "name": "timeMaxDifference", "type": "float", "unit": "ms" } | ||
9 | ] | ||
10 | } | ||
diff --git a/tests/dummyresourcebenchmark.cpp b/tests/dummyresourcebenchmark.cpp index 79c0c96..868c5aa 100644 --- a/tests/dummyresourcebenchmark.cpp +++ b/tests/dummyresourcebenchmark.cpp | |||
@@ -196,14 +196,6 @@ private slots: | |||
196 | 196 | ||
197 | auto allProcessedTime = time.elapsed(); | 197 | auto allProcessedTime = time.elapsed(); |
198 | 198 | ||
199 | HAWD::Dataset dataset("dummy_write_in_process", m_hawdState); | ||
200 | HAWD::Dataset::Row row = dataset.row(); | ||
201 | |||
202 | row.setValue("rows", num); | ||
203 | row.setValue("append", (qreal)num / appendTime); | ||
204 | row.setValue("total", (qreal)num / allProcessedTime); | ||
205 | dataset.insertRow(row); | ||
206 | HAWD::Formatter::print(dataset); | ||
207 | 199 | ||
208 | // Print memory layout, RSS is what is in memory | 200 | // Print memory layout, RSS is what is in memory |
209 | // std::system("exec pmap -x \"$PPID\""); | 201 | // std::system("exec pmap -x \"$PPID\""); |
diff --git a/tests/dummyresourcewritebenchmark.cpp b/tests/dummyresourcewritebenchmark.cpp index 9815f96..28ca408 100644 --- a/tests/dummyresourcewritebenchmark.cpp +++ b/tests/dummyresourcewritebenchmark.cpp | |||
@@ -77,7 +77,6 @@ class DummyResourceWriteBenchmark : public QObject | |||
77 | { | 77 | { |
78 | DummyResource::removeFromDisk("sink.dummy.instance1"); | 78 | DummyResource::removeFromDisk("sink.dummy.instance1"); |
79 | 79 | ||
80 | |||
81 | QTime time; | 80 | QTime time; |
82 | time.start(); | 81 | time.start(); |
83 | DummyResource resource(Sink::ResourceContext{"sink.dummy.instance1", "sink.dummy", Sink::AdaptorFactoryRegistry::instance().getFactories("sink.dummy")}); | 82 | DummyResource resource(Sink::ResourceContext{"sink.dummy.instance1", "sink.dummy", Sink::AdaptorFactoryRegistry::instance().getFactories("sink.dummy")}); |
@@ -128,14 +127,20 @@ class DummyResourceWriteBenchmark : public QObject | |||
128 | // so it doesn't look like that memory is being duplicated. | 127 | // so it doesn't look like that memory is being duplicated. |
129 | QVERIFY(rssGrowthPerEntity < 2500); | 128 | QVERIFY(rssGrowthPerEntity < 2500); |
130 | 129 | ||
131 | // HAWD::Dataset dataset("dummy_write_in_process", m_hawdState); | 130 | HAWD::Dataset dataset("dummy_write_in_process", m_hawdState); |
132 | // HAWD::Dataset::Row row = dataset.row(); | 131 | HAWD::Dataset::Row row = dataset.row(); |
133 | // | 132 | row.setValue("rows", num); |
134 | // row.setValue("rows", num); | 133 | row.setValue("append", (qreal)num/appendTime); |
135 | // row.setValue("append", (qreal)num/appendTime); | 134 | row.setValue("total", (qreal)num/allProcessedTime); |
136 | // row.setValue("total", (qreal)num/allProcessedTime); | 135 | row.setValue("onDisk", onDisk / 1024); |
137 | // dataset.insertRow(row); | 136 | row.setValue("bufferSize", bufferSizeTotal / 1024); |
138 | // HAWD::Formatter::print(dataset); | 137 | row.setValue("writeAmplification", writeAmplification); |
138 | row.setValue("rss", QVariant::fromValue(finalRss / 1024)); | ||
139 | row.setValue("peakRss", QVariant::fromValue(peakRss / 1024)); | ||
140 | row.setValue("rssGrowthPerEntity", QVariant::fromValue(rssGrowthPerEntity)); | ||
141 | row.setValue("rssWithoutDb", rssWithoutDb / 1024); | ||
142 | dataset.insertRow(row); | ||
143 | HAWD::Formatter::print(dataset); | ||
139 | 144 | ||
140 | // Print memory layout, RSS is what is in memory | 145 | // Print memory layout, RSS is what is in memory |
141 | // std::system("exec pmap -x \"$PPID\""); | 146 | // std::system("exec pmap -x \"$PPID\""); |
@@ -154,42 +159,28 @@ private slots: | |||
154 | { | 159 | { |
155 | } | 160 | } |
156 | 161 | ||
157 | void test1k() | 162 | void runBenchmarks() |
158 | { | 163 | { |
159 | writeInProcess(1000); | 164 | writeInProcess(1000); |
160 | } | ||
161 | |||
162 | void test2k() | ||
163 | { | ||
164 | writeInProcess(2000); | 165 | writeInProcess(2000); |
165 | } | ||
166 | |||
167 | void test5k() | ||
168 | { | ||
169 | writeInProcess(5000); | 166 | writeInProcess(5000); |
167 | writeInProcess(20000); | ||
170 | } | 168 | } |
171 | 169 | ||
172 | // void test20k() | ||
173 | // { | ||
174 | // writeInProcess(20000); | ||
175 | // } | ||
176 | // | ||
177 | void ensureUsedMemoryRemainsStable() | 170 | void ensureUsedMemoryRemainsStable() |
178 | { | 171 | { |
179 | auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity)); | 172 | auto rssStandardDeviation = sqrt(variance(mRssGrowthPerEntity)); |
180 | auto timeStandardDeviation = sqrt(variance(mTimePerEntity)); | 173 | auto timeStandardDeviation = sqrt(variance(mTimePerEntity)); |
181 | std::cout << "Rss standard deviation " << rssStandardDeviation << std::endl; | 174 | HAWD::Dataset dataset("dummy_write_in_process_summary", m_hawdState); |
182 | std::cout << "Rss max difference [byte]" << maxDifference(mRssGrowthPerEntity) << std::endl; | 175 | HAWD::Dataset::Row row = dataset.row(); |
183 | std::cout << "Time standard deviation " << timeStandardDeviation << std::endl; | 176 | row.setValue("rssStandardDeviation", rssStandardDeviation); |
184 | std::cout << "Time max difference [ms]" << maxDifference(mTimePerEntity) << std::endl; | 177 | row.setValue("rssMaxDifference", maxDifference(mRssGrowthPerEntity)); |
185 | QVERIFY(rssStandardDeviation < 1000); | 178 | row.setValue("timeStandardDeviation", timeStandardDeviation); |
186 | QVERIFY(timeStandardDeviation < 1); | 179 | row.setValue("timeMaxDifference", maxDifference(mTimePerEntity)); |
180 | dataset.insertRow(row); | ||
181 | HAWD::Formatter::print(dataset); | ||
187 | } | 182 | } |
188 | 183 | ||
189 | void getFreePages() | ||
190 | { | ||
191 | std::system(QString("mdb_stat %1/%2 -ff").arg(Sink::storageLocation()).arg("sink.dummy.instance1").toLatin1().constData()); | ||
192 | } | ||
193 | 184 | ||
194 | // This allows to run individual parts without doing a cleanup, but still cleaning up normally | 185 | // This allows to run individual parts without doing a cleanup, but still cleaning up normally |
195 | void testCleanupForCompleteTest() | 186 | void testCleanupForCompleteTest() |