Mercurial > hg > orthanc-tests
diff PerfsDb/README.md @ 156:f1a75985caa8
first Db test framework - work in progress
author | am@osimis.io |
---|---|
date | Thu, 16 Aug 2018 17:13:32 +0200 |
parents | |
children | df1f9946571c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PerfsDb/README.md Thu Aug 16 17:13:32 2018 +0200 @@ -0,0 +1,69 @@ +Performance Db tests +==================== + +Introduction +------------ + +This project performs benchmark tests of Orthanc with its various DB servers. + +It can be used to: + +- compare DB servers performance +- compare performance between small and big DB +- test the effectiveness of some code refactoring + +In a first step, the project creates a set of DB servers and populates them. +Then, it will perform a set of basic operations on Orthanc with each of these servers +and measure the time required for each operation. + +Timings are measured at the API level. Since we want to measure mainly the DB performance, +we'll mainly use very small DICOM files (without pixels data). + +Prerequisites +------------- + +- install python3, pip3 and pipenv + +```bash +sudo apt-get install -y python3 python3-pip python3-venv +``` + +- [install Docker-CE](https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository) +- [install docker-compose](https://docs.docker.com/compose/install/) +- have access to docker without typing `sudo`. This is done by typing: `sudo groupadd docker` and `sudo usermod -aG docker $USER` +- have Orthanc and its DB plugins natively installed or compiled on your host system + +Once all prerequisites are installed, you should always execute all commands from a python virtual-env. To initialize the virtual env the first time: + +```bash +python3 -m venv .env +source .env/bin/activate +pip install -r requirements.txt +``` + +To enter the virtual-env the next times: + +```bash +source .env/bin/activate +``` + +Initializing a DB before tests +----------------- + +```bash +python run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/mysql-release/ --init --mysql-small +``` + +Clearing a DB +----------------- + +```bash +python run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/mysql-release/ --clear --mysql-small +``` + +Runing tests on two DBs +----------------- + +```bash +python run.py --orthanc-path=/home/amazy/builds/orthanc-build-release/ --plugins-path=/home/amazy/builds/mysql-release/ --run --mysql-large --mysql-small +```