diff options
Diffstat (limited to 'blob-multiprocess/README.txt')
-rw-r--r-- | blob-multiprocess/README.txt | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/blob-multiprocess/README.txt b/blob-multiprocess/README.txt deleted file mode 100644 index 31caa29..0000000 --- a/blob-multiprocess/README.txt +++ /dev/null @@ -1,92 +0,0 @@ -Blobs Server Multiprocessing Improvement Assessment -=================================================== - -The code in this directory has the purpose of showing whether multiprocessing -improves the Soledad Blobs Server or not. - -It uses a haproxy instance listening on local port 8000 to route between -different processes listening on ports 8001-8008. The number of processes -depends on the testing scenario. - -Then, it runs a set of tests using 1, 2, 4 and 8 blobs server processes and -stores the results in a text file. Those results can then be graphed and -compared visually. - - -Dependencies ------------- - -To run the testing script, you will need to have: - -- A python virtualenv with Soledad Server installed on it. -- A working haproxy installation. -- curl - -To generate the graph, you will need: - -- numpy -- matplotlib/pyplot - - -Description of files --------------------- - -. -├── blobs-in-parallel.png - A graph generated from ./results.txt -├── blobs-server.py - A simple blobs server. -├── graph.py - The graphing script. -├── haproxy - A directory with haproxy config. -├── makefile - Rules for starting up pieces of the test. -├── multiproc.py - A service that spawns multiple blobs servers. -├── README - This file. -├── request.py - A stressing blobs client. -├── results - A directory with some results stored. -├── results.txt - The file that ./graph.py reads from. -└── run-test.sh - The script to run tests and produce output. - - -Actions -------- - -The following set of actions are tested in each scenario, and compose the -X axis of the final graph: - - - baseline: a simple GET / to the root of the webserver, returning an empty - page. Nothing can be faster than that. - - - list: a simple GET /blobs/some-user which lists the current blobs. In the - present case, the result will always be an empty set of blobs. - - - put: a PUT /blobs/some-user/some-blob-id. The size of the blob depends on - the scenarios configured in ./run-test.sh. - - - get: a PUT /blobs/some-user/some-blob-id followed by a GET to the same - blob. - - - flag: a PUT /blobs/some-user/some-blob-id followed by a POST to the same - blob setting one flag. - - - delete: a PUT /blobs/some-user/some-blob-id followed by a DELETE of the - same blob. - -When testing, each action is run 5 times (so the numbers in ./results.txt are -the accumulated time of the 5 runs) and the mean of the time taken is used when -graphing. - -Usage ------ - -Configure the scenarios you want tests to be run by editing ./run-test.sh, and -then run the script. It will: - - - iterate through desired number of processes and startup haproxy and - multiproc blobs server for each scenario. - - - iterate through all the actions tested (baseline, put, put+get, etc). - - - iterate through amount x size blobs scenarios. - - - delete the contents of /tmp/blobs/* and run tests for each scenario. - -Check the makefile for rules to help debugging (i.e. `make server` and `make -get`). |