You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
2 months ago | |
---|---|---|
atree | 2 months ago | |
bin | 3 months ago | |
bufreader | 3 months ago | |
chunkenc | 3 months ago | |
client | 2 months ago | |
conbuf | 3 months ago | |
database | 2 months ago | |
enc | 3 months ago | |
examples | 2 months ago | |
freelist | 3 months ago | |
proto | 2 months ago | |
recovery | 3 months ago | |
timeutil | 3 months ago | |
transform | 2 months ago | |
txlog | 3 months ago | |
README.txt | 3 months ago | |
database.ini | 3 months ago | |
database_linux | 2 months ago | |
database_windows | 2 months ago | |
diploma.go | 2 months ago | |
go.mod | 2 months ago | |
go.sum | 2 months ago | |
linux_build.sh | 3 months ago | |
loadtest.ini | 3 months ago | |
loadtest_linux | 2 months ago | |
loadtest_windows | 2 months ago | |
requests.ini | 3 months ago | |
requests_linux | 2 months ago | |
requests_windows | 2 months ago | |
windows_build.sh | 3 months ago |
README.txt
1. Zip-архів із базою даних на 841 млн показань (791 МБ) можна скачати за посиланням https://drive.google.com/file/d/18oks6STkVpg4-TT2WyCIBBpCgRyF29L2
В архіві 5 файлів:
2.changes
2.snapshot
test.data
test.index
metrics.info
Після розпаковки їх необхідно перемістити в директорію testdir.
2. Якщо є бажання експериментувати з пустою базою даних, краще створити нову. Наприклад, назвемо її "x": створюємо директорію xdir, створюємо файл x.ini із такими налаштуваннями:
tcpPort = 12345
dir = xdir
redoDir = xdir
databaseName = x
Запускаємо СУБД із термінала:
./database_linux -c x.ini
Всі операції виконуємо в кореневій директорії проєкту.
3. Файли *.ini:
database.ini - налаштування СУБД (database);
loadtest.ini - налаштування навантажувального тесту (loadtest);
requests.ini - налаштування прикладів запитів (requests).
4. Скомпільоване ПО для Linux (64-бітна архітектура):
database_linux - СУБД;
loadtest_linux - навантажувального тест;
requests_linux - приклади запитів.
5. Скомпільоване ПО для Windows (64-бітна архітектура):
database_windows - СУБД;
loadtest_windows - навантажувального тест;
requests_windows - приклади запитів.
6. Директорія examples має три вкладені директорії із вихідними кодами:
database - запуску СУБД;
loadtest - навантажувального тесту;
requests - різних типів запитів, що підтримуються СУБД.
7. Якщо на комп'ютері встановлено компілятор Go, можна скомпілювати згадані вище програми за допомогою bash-скриптів:
./linux_build.sh
./windows_build.sh
Скомпільовані версії програм опиняться в кореневій директорії проєкту.
8. Файли з даними розміщуються в директорії datadir. В базі даних вже записано 841 млн. показань. Сумарний розмір трохи більше 1.3 GB.
9. Налаштування навантажувального тесту можна змінити, відредагувавши файл loadtest.ini.
Опція connections - це кількість одночасно відкритих підключень до СУБД.
Опція requestsPerConn - це кількість запитів, які відправляє потік через одне відкрите підключення.
Звіт виглядає наступним чином:
TEST RESULTS:
Time: 2 seconds
Connections: 100
Requests per conn: 500
Total requests: 50000
AVG request time: 3.121022ms
RPS: 26891
listCumulativeMeasures: 3099 (6.2%), AVG request time: 3.785916ms
listCumulativePeriods: 12055 (24.1%), AVG request time: 2.726391ms
listInstantMeasures: 1974 (3.9%), AVG request time: 6.726605ms
listInstantPeriods: 7710 (15.4%), AVG request time: 2.9808ms
listCurrentValues: 25162 (50.3%), AVG request time: 2.988301ms
last day: 20382 (82.1%), AVG request time: 2.954718ms
last week: 2993 (12.1%), AVG request time: 4.050662ms
last month: 708 (2.9%), AVG request time: 8.248486ms
random time range: 755 (3.0%), AVG request time: 3.540239ms
Навантажувальний тест відправляє випадкові запити до випадкових метрик. Оскільки на реальному проєкті запити та часові діапазони мають різну ймовірність - я реалізував це в навантажувальному тесті.
Приклад 1:
listCurrentValues: 25162 (50.3%) , AVG request time: 2.988301ms
означає що відправлено 25162 запитів listCurrentValues, що склало 50.3% від загальної кількості запитів. Середній час виконання (Latency) запитів listCurrentValues склав 2.99 міллісекунди.
Приклад 2:
last month: 708 (2.9%), AVG request time: 8.248486ms
означає що відправлено 708 запитів на отримання даних за останній місяць, що склало 2.9% від загальної кількості. Середній час виконання (Latency) таких запитів склав 8.25 міллісекунди. Часовий діапазон задається для всіх запитів окрім listCurrentValues.
10. Запуск навантажувального тесту:
Виконуємо пункт 1.
Запускаємо СУБД із термінала:
./database_linux
Запускаємо тест із іншого термінала:
./loadtest_linux
Чекаємо завершення. Звіт буде надруковано у терміналі після завершення тесту.
Команди для Windows:
./database_windows
./loadtest_windows
11. Запуск прикладів запитів:
Можна запускати на пустій базі даних (без скачування Zip-архіва із показаннями).
Запускаємо СУБД із термінала:
./database_linux
Запускаємо тест із іншого термінала:
./requests_linux
Результат виконання запитів друкується у терміналі.
Команди для Windows:
./database_windows
./requests_windows
12. Подивитись HELP:
./database_linux -h
./loadtest_linux -h
./requests_linux -h
13. Зупинити СУБД, перервати навантажувальний тест:
Ctrl + C