Будем пользоваться тестером от Yahoo YCSB
Ставим Java если нету.
sudo apt update
sudo apt install default-jre
wget https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-mongodb-binding-0.17.0.tar.gz
tar xvf ycsb-mongodb-binding-0.17.0.tar.gz
cd ycsb-mongodb-binding-0.17.0/
В Ubuntu 20.04 /usr/bin/env: ‘python’: No such file or directory, вы точно увидите такое при запуске теста так что придется поставить python2
sudo apt install python2
sudo ln -s /usr/bin/python2 /usr/bin/python
Варианты работы теста:
-
- Workload A 50% Read and 50% Update
- Workload B 95% Read and 5% Update
- Workload C 100% Read
- Workload D Read/update/insert ratio: 95/0/5
- Workload E Scan/insert ratio: 95/5
- Workload F Read/read-modify-write ratio: 50/50
Пробуем запускать тест на запись
./bin/ycsb load mongodb -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url="mongodb://mongodb1:27017/"
Должны увидель что то вроде этого
/ycsb-mongodb-binding-0.17.0# ./bin/ycsb load mongodb -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url=»mongodb://mongodb1:27017/»
java -cp /root/ycsb-mongodb-binding-0.17.0/mongodb-binding/conf:/root/ycsb-mongodb-binding-0.17.0/conf:/root/ycsb-mongodb-binding-0.17.0/lib/logback-core-1.1.2.jar:/root/ycsb-mongodb-binding-0.17.0/lib/slf4j-api-1.7.25.jar:/root/ycsb-mongodb-binding-0.17.0/lib/core-0.17.0.jar:/root/ycsb-mongodb-binding-0.17.0/lib/jackson-core-asl-1.9.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongodb-binding-0.17.0.jar:/root/ycsb-mongodb-binding-0.17.0/lib/logback-classic-1.1.2.jar:/root/ycsb-mongodb-binding-0.17.0/lib/jackson-mapper-asl-1.9.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/htrace-core4-4.1.0-incubating.jar:/root/ycsb-mongodb-binding-0.17.0/lib/snappy-java-1.1.7.1.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongodb-async-driver-2.0.1.jar:/root/ycsb-mongodb-binding-0.17.0/lib/HdrHistogram-2.1.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongo-java-driver-3.8.0.jar site.ycsb.Client -db site.ycsb.db.MongoDbClient -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url=mongodb://mongodb1:27017/ -load
Command line: -db site.ycsb.db.MongoDbClient -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url=mongodb://mongodb1:27017/ -load
YCSB Client 0.17.0
Loading workload…
Starting test.
2022-07-08 12:15:05:903 0 sec: 0 operations; est completion in 0 second
mongo client connection created with mongodb://mongodb1:27017/
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
2022-07-08 12:15:15:842 10 sec: 63322 operations; 6331.57 current ops/sec; est completion in 1 minute [INSERT: Count=63330, Max=162175, Min=391, Avg=2368.31, 90=3401, 99=7791, 99.9=23247, 99.99=135807]
2022-07-08 12:15:25:841 20 sec: 133327 operations; 7001.2 current ops/sec; est completion in 56 seconds [INSERT: Count=70001, Max=64191, Min=386, Avg=2281.79, 90=3205, 99=6327, 99.9=16087, 99.99=43871]
2022-07-08 12:15:35:841 30 sec: 204011 operations; 7068.4 current ops/sec; est completion in 44 seconds [INSERT: Count=70680, Max=70207, Min=419, Avg=2260.4, 90=3207, 99=5967, 99.9=13911, 99.99=40479]
2022-07-08 12:15:45:841 40 sec: 273884 operations; 6987.3 current ops/sec; est completion in 34 seconds [INSERT: Count=69876, Max=42623, Min=416, Avg=2286.6, 90=3205, 99=6011, 99.9=12583, 99.99=30287]
2022-07-08 12:15:55:841 50 sec: 344629 operations; 7074.5 current ops/sec; est completion in 23 seconds [INSERT: Count=70743, Max=44287, Min=398, Avg=2258.65, 90=3133, 99=5923, 99.9=12887, 99.99=24431]
2022-07-08 12:16:05:841 60 sec: 414917 operations; 7028.8 current ops/sec; est completion in 13 seconds [INSERT: Count=70290, Max=84031, Min=390, Avg=2273.41, 90=3163, 99=5915, 99.9=15847, 99.99=39103]
2022-07-08 12:16:15:841 70 sec: 485869 operations; 7095.2 current ops/sec; est completion in 3 second [INSERT: Count=70949, Max=59903, Min=402, Avg=2252.18, 90=3143, 99=5999, 99.9=13999, 99.99=36671]
2022-07-08 12:16:17:954 72 sec: 500000 operations; 6690.81 current ops/sec; [CLEANUP: Count=16, Max=7879, Min=0, Avg=493.88, 90=6, 99=7879, 99.9=7879, 99.99=7879] [INSERT: Count=14131, Max=49535, Min=397, Avg=2220.86, 90=3297, 99=6519, 99.9=12583, 99.99=48383]
[OVERALL], RunTime(ms), 72116
[OVERALL], Throughput(ops/sec), 6933.274169393754
[TOTAL_GCS_G1_Young_Generation], Count, 75
[TOTAL_GC_TIME_G1_Young_Generation], Time(ms), 160
[TOTAL_GC_TIME_%_G1_Young_Generation], Time(%), 0.22186477342060013
[TOTAL_GCS_G1_Old_Generation], Count, 0
[TOTAL_GC_TIME_G1_Old_Generation], Time(ms), 0
[TOTAL_GC_TIME_%_G1_Old_Generation], Time(%), 0.0
[TOTAL_GCs], Count, 75
[TOTAL_GC_TIME], Time(ms), 160
[TOTAL_GC_TIME_%], Time(%), 0.22186477342060013
[CLEANUP], Operations, 16
[CLEANUP], AverageLatency(us), 493.875
[CLEANUP], MinLatency(us), 0
[CLEANUP], MaxLatency(us), 7879
[CLEANUP], 95thPercentileLatency(us), 10
[CLEANUP], 99thPercentileLatency(us), 7879
[INSERT], Operations, 500000
[INSERT], AverageLatency(us), 2280.02249
[INSERT], MinLatency(us), 386
[INSERT], MaxLatency(us), 162175
[INSERT], 95thPercentileLatency(us), 3915
[INSERT], 99thPercentileLatency(us), 6211
[INSERT], Return=OK, 500000
Пробуем тест на чтение
./bin/ycsb run mongodb -s -P workloads/workloada -p mongodb.url="mongodb://mongodb1:27017" -p operationcount=500000 -threads 2
Должны увидеть что то вроде этого
./bin/ycsb run mongodb -s -P workloads/workloada -p mongodb.url=»mongodb://mongodb1:27017″ -p operationcount=500000 -threads 2
java -cp /root/ycsb-mongodb-binding-0.17.0/mongodb-binding/conf:/root/ycsb-mongodb-binding-0.17.0/conf:/root/ycsb-mongodb-binding-0.17.0/lib/logback-core-1.1.2.jar:/root/ycsb-mongodb-binding-0.17.0/lib/slf4j-api-1.7.25.jar:/root/ycsb-mongodb-binding-0.17.0/lib/core-0.17.0.jar:/root/ycsb-mongodb-binding-0.17.0/lib/jackson-core-asl-1.9.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongodb-binding-0.17.0.jar:/root/ycsb-mongodb-binding-0.17.0/lib/logback-classic-1.1.2.jar:/root/ycsb-mongodb-binding-0.17.0/lib/jackson-mapper-asl-1.9.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/htrace-core4-4.1.0-incubating.jar:/root/ycsb-mongodb-binding-0.17.0/lib/snappy-java-1.1.7.1.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongodb-async-driver-2.0.1.jar:/root/ycsb-mongodb-binding-0.17.0/lib/HdrHistogram-2.1.4.jar:/root/ycsb-mongodb-binding-0.17.0/lib/mongo-java-driver-3.8.0.jar site.ycsb.Client -db site.ycsb.db.MongoDbClient -s -P workloads/workloada -p mongodb.url=mongodb://mongodb1:27017 -p operationcount=500000 -threads 2 -t
Command line: -db site.ycsb.db.MongoDbClient -s -P workloads/workloada -p mongodb.url=mongodb://mongodb1:27017 -p operationcount=500000 -threads 2 -t
YCSB Client 0.17.0
Loading workload…
Starting test.
2022-07-08 12:19:47:907 0 sec: 0 operations; est completion in 0 second
mongo client connection created with mongodb://mongodb1:27017
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
2022-07-08 12:19:57:866 10 sec: 24495 operations; 2449.5 current ops/sec; est completion in 3 minutes [READ: Count=12383, Max=81151, Min=363, Avg=687.74, 90=919, 99=1620, 99.9=4423, 99.99=10263] [UPDATE: Count=12131, Max=81023, Min=415, Avg=834.97, 90=1131, 99=1779, 99.9=4307, 99.99=12623]
2022-07-08 12:20:07:866 20 sec: 53100 operations; 2860.5 current ops/sec; est completion in 2 minutes [READ: Count=14159, Max=6195, Min=364, Avg=620.93, 90=850, 99=1152, 99.9=2141, 99.99=5743] [UPDATE: Count=14429, Max=8919, Min=412, Avg=765.06, 90=1047, 99=1458, 99.9=3599, 99.99=5455]
2022-07-08 12:20:17:865 30 sec: 81085 operations; 2798.5 current ops/sec; est completion in 2 minutes [READ: Count=13932, Max=10023, Min=362, Avg=640.9, 90=885, 99=1243, 99.9=2363, 99.99=6819] [UPDATE: Count=14056, Max=5615, Min=407, Avg=779.5, 90=1075, 99=1547, 99.9=3339, 99.99=5243]
2022-07-08 12:20:27:866 40 sec: 109404 operations; 2831.9 current ops/sec; est completion in 2 minutes [READ: Count=14188, Max=4499, Min=362, Avg=631.79, 90=859, 99=1234, 99.9=2022, 99.99=4047] [UPDATE: Count=14131, Max=7455, Min=414, Avg=773, 90=1064, 99=1511, 99.9=2273, 99.99=5811]
2022-07-08 12:20:37:866 50 sec: 138281 operations; 2887.7 current ops/sec; est completion in 2 minutes [READ: Count=14456, Max=6275, Min=360, Avg=622.68, 90=857, 99=1195, 99.9=1846, 99.99=3851] [UPDATE: Count=14419, Max=6387, Min=407, Avg=755.43, 90=1042, 99=1466, 99.9=2257, 99.99=5783]
2022-07-08 12:20:47:865 60 sec: 167072 operations; 2879.1 current ops/sec; est completion in 2 minutes [READ: Count=14350, Max=7363, Min=364, Avg=624.16, 90=856, 99=1241, 99.9=2018, 99.99=4567] [UPDATE: Count=14442, Max=4367, Min=413, Avg=757.66, 90=1048, 99=1547, 99.9=2605, 99.99=4319]
2022-07-08 12:20:57:865 70 sec: 195683 operations; 2861.1 current ops/sec; est completion in 1 minute [READ: Count=14334, Max=10343, Min=354, Avg=627.68, 90=865, 99=1188, 99.9=1987, 99.99=3939] [UPDATE: Count=14278, Max=8087, Min=415, Avg=763.7, 90=1050, 99=1469, 99.9=2825, 99.99=6619]
2022-07-08 12:21:07:865 80 sec: 224229 operations; 2854.6 current ops/sec; est completion in 1 minute [READ: Count=14383, Max=7883, Min=359, Avg=616.98, 90=847, 99=1149, 99.9=2073, 99.99=4839] [UPDATE: Count=14161, Max=9607, Min=417, Avg=778.69, 90=1072, 99=1485, 99.9=3867, 99.99=9015]
2022-07-08 12:21:17:865 90 sec: 253135 operations; 2890.6 current ops/sec; est completion in 1 minute [READ: Count=14279, Max=11783, Min=357, Avg=622.09, 90=852, 99=1162, 99.9=1818, 99.99=4143] [UPDATE: Count=14628, Max=11831, Min=415, Avg=753.25, 90=1032, 99=1469, 99.9=2271, 99.99=11607]
2022-07-08 12:21:27:865 100 sec: 282039 operations; 2890.4 current ops/sec; est completion in 1 minute [READ: Count=14395, Max=9687, Min=355, Avg=621.15, 90=844, 99=1154, 99.9=1916, 99.99=9535] [UPDATE: Count=14510, Max=10279, Min=410, Avg=755.46, 90=1042, 99=1519, 99.9=2617, 99.99=9751]
2022-07-08 12:21:37:865 110 sec: 310898 operations; 2885.9 current ops/sec; est completion in 1 minute [READ: Count=14560, Max=9951, Min=352, Avg=623.8, 90=857, 99=1197, 99.9=2127, 99.99=8423] [UPDATE: Count=14299, Max=8743, Min=402, Avg=756.55, 90=1046, 99=1456, 99.9=2151, 99.99=8303]
2022-07-08 12:21:47:865 120 sec: 339749 operations; 2885.1 current ops/sec; est completion in 57 seconds [READ: Count=14419, Max=5519, Min=357, Avg=623.97, 90=860, 99=1213, 99.9=2008, 99.99=4079] [UPDATE: Count=14431, Max=7503, Min=413, Avg=755.32, 90=1045, 99=1451, 99.9=2257, 99.99=7443]
2022-07-08 12:21:57:865 130 sec: 368309 operations; 2856 current ops/sec; est completion in 47 seconds [READ: Count=14312, Max=7291, Min=364, Avg=627.78, 90=867, 99=1200, 99.9=1718, 99.99=5963] [UPDATE: Count=14247, Max=6231, Min=408, Avg=766.1, 90=1056, 99=1471, 99.9=2365, 99.99=3875]
2022-07-08 12:22:07:865 140 sec: 397595 operations; 2928.6 current ops/sec; est completion in 37 seconds [READ: Count=14512, Max=3919, Min=351, Avg=615.11, 90=842, 99=1171, 99.9=1640, 99.99=3895] [UPDATE: Count=14773, Max=11711, Min=403, Avg=742.8, 90=1030, 99=1459, 99.9=2031, 99.99=9551]
2022-07-08 12:22:17:865 150 sec: 426344 operations; 2874.9 current ops/sec; est completion in 26 seconds [READ: Count=14382, Max=7651, Min=353, Avg=622.94, 90=857, 99=1173, 99.9=2041, 99.99=7531] [UPDATE: Count=14368, Max=6003, Min=410, Avg=761.41, 90=1062, 99=1481, 99.9=2151, 99.99=5839]
2022-07-08 12:22:27:865 160 sec: 454927 operations; 2858.3 current ops/sec; est completion in 16 seconds [READ: Count=14210, Max=7855, Min=361, Avg=621.32, 90=853, 99=1153, 99.9=1925, 99.99=4227] [UPDATE: Count=14372, Max=5571, Min=413, Avg=770.51, 90=1064, 99=1450, 99.9=2509, 99.99=5087]
2022-07-08 12:22:37:865 170 sec: 483008 operations; 2808.1 current ops/sec; est completion in 6 second [READ: Count=13986, Max=4611, Min=359, Avg=625.77, 90=866, 99=1137, 99.9=1813, 99.99=4183] [UPDATE: Count=14096, Max=10671, Min=420, Avg=791.07, 90=1076, 99=1467, 99.9=3603, 99.99=10383]
2022-07-08 12:22:44:020 176 sec: 500000 operations; 2760.68 current ops/sec; [READ: Count=8521, Max=8767, Min=360, Avg=624.3, 90=866, 99=1190, 99.9=2017, 99.99=7423] [CLEANUP: Count=2, Max=5471, Min=7, Avg=2738.5, 90=5471, 99=5471, 99.9=5471, 99.99=5471] [UPDATE: Count=8468, Max=6659, Min=424, Avg=809.84, 90=1096, 99=1460, 99.9=3147, 99.99=6359]
[OVERALL], RunTime(ms), 176155
[OVERALL], Throughput(ops/sec), 2838.4093553972352
[TOTAL_GCS_G1_Young_Generation], Count, 93
[TOTAL_GC_TIME_G1_Young_Generation], Time(ms), 142
[TOTAL_GC_TIME_%_G1_Young_Generation], Time(%), 0.08061082569328148
[TOTAL_GCS_G1_Old_Generation], Count, 0
[TOTAL_GC_TIME_G1_Old_Generation], Time(ms), 0
[TOTAL_GC_TIME_%_G1_Old_Generation], Time(%), 0.0
[TOTAL_GCs], Count, 93
[TOTAL_GC_TIME], Time(ms), 142
[TOTAL_GC_TIME_%], Time(%), 0.08061082569328148
[READ], Operations, 249761
[READ], AverageLatency(us), 627.4204339348418
[READ], MinLatency(us), 351
[READ], MaxLatency(us), 81151
[READ], 95thPercentileLatency(us), 959
[READ], 99thPercentileLatency(us), 1200
[READ], Return=OK, 249761
[CLEANUP], Operations, 2
[CLEANUP], AverageLatency(us), 2738.5
[CLEANUP], MinLatency(us), 7
[CLEANUP], MaxLatency(us), 5471
[CLEANUP], 95thPercentileLatency(us), 5471
[CLEANUP], 99thPercentileLatency(us), 5471
[UPDATE], Operations, 250239
[UPDATE], AverageLatency(us), 768.9536922701897
[UPDATE], MinLatency(us), 402
[UPDATE], MaxLatency(us), 81023
[UPDATE], 95thPercentileLatency(us), 1179
[UPDATE], 99thPercentileLatency(us), 1493
[UPDATE], Return=OK, 250239