annotate PerfsDb/README.md @ 159:616da104a996

fix for ubuntu 18.04
author am@osimis.io
date Fri, 17 Aug 2018 14:49:59 +0200
parents df1f9946571c
children 6995d5d12d88
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
1 Performance Db tests
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
2 ====================
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
3
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
4 Introduction
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
5 ------------
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
6
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
7 This project performs benchmark tests of Orthanc with its various DB servers.
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
8
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
9 It can be used to:
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
10
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
11 - compare DB servers performance
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
12 - compare performance between small and big DB
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
13 - test the effectiveness of some code refactoring
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
14
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
15 In a first step, the project creates a set of DB servers and populates them.
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
16 Then, it will perform a set of basic operations on Orthanc with each of these servers
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
17 and measure the time required for each operation.
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
18
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
19 Timings are measured at the API level. Since we want to measure mainly the DB performance,
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
20 we'll mainly use very small DICOM files (without pixels data).
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
21
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
22 Prerequisites
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
23 -------------
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
24
159
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
25 - install standard tools
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
26 ```bash
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
27 sudo apt-get install -y mercurial wget curl
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
28 ```
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
29
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
30 - install python3, pip3 and pipenv
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
31
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
32 ```bash
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
33 sudo apt-get install -y python3 python3-pip python3-venv
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
34 ```
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
35
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
36 - [install Docker-CE](https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository)
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
37 - have access to docker without typing `sudo`. This is done by typing: `sudo groupadd docker` and `sudo usermod -aG docker $USER`
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
38 - have Orthanc and its DB plugins natively installed or compiled on your host system
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
39
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
40 Once all prerequisites are installed, you should always execute all commands from a python virtual-env. To initialize the virtual env the first time:
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
41
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
42 ```bash
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
43 python3 -m venv .env
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
44 source .env/bin/activate
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
45 pip install -r requirements.txt
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
46 ```
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
47
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
48 To enter the virtual-env the next times:
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
49
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
50 ```bash
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
51 source .env/bin/activate
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
52 ```
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
53
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
54 Initializing a DB before tests
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
55 -----------------
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
56
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
57 ```bash
158
df1f9946571c perfs db continued: tests working with tiny DBs on all setup but the sqliteplugin
am@osimis.io
parents: 156
diff changeset
58 python Run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/mysql-release/ --init --mysql-tiny
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
59 ```
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
60
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
61 Clearing a DB
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
62 -----------------
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
63
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
64 ```bash
158
df1f9946571c perfs db continued: tests working with tiny DBs on all setup but the sqliteplugin
am@osimis.io
parents: 156
diff changeset
65 python Run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/mysql-release/ --clear --mysql-tiny
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
66 ```
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
67
158
df1f9946571c perfs db continued: tests working with tiny DBs on all setup but the sqliteplugin
am@osimis.io
parents: 156
diff changeset
68 Runing tests on multiple DBs
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
69 -----------------
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
70
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
71 ```bash
158
df1f9946571c perfs db continued: tests working with tiny DBs on all setup but the sqliteplugin
am@osimis.io
parents: 156
diff changeset
72 python Run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/orthanc-build-release/ --run --pg9-tiny --pg10-tiny --pg11-tiny --mysql-tiny --sqlite-tiny --mssql-tiny
159
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
73
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
74 python Run.py --orthanc-path=/data/orthanc-binaries/ --plugins-path=/data/orthanc-binaries/ --run --pg9-tiny --pg10-tiny --pg11-tiny --mysql-tiny --sqlite-tiny --mssql-tiny
616da104a996 fix for ubuntu 18.04
am@osimis.io
parents: 158
diff changeset
75
156
f1a75985caa8 first Db test framework - work in progress
am@osimis.io
parents:
diff changeset
76 ```