1st
This commit is contained in:
132
README.txt
Normal file
132
README.txt
Normal file
@@ -0,0 +1,132 @@
|
||||
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
|
||||
Reference in New Issue
Block a user