A simple tool for generating high load on server to simulate long tail effect.
A large number of random matrices are generated by the matrix_generator
component. Later, the server
component reads them from disk and does LU decomposition on a randomly-selected matrix, in a concurrent way.
Consider running this tool on a HDD, since millions of small files will add highly uncertain I/O time to each request, which simulates I/O intensive tasks.
The matrix_generator
and server
components are written in Rust, so it's necessary to build them before using. The client
component is written in Python so simply run it. It might be helpful to add some visualization or comparison codes to the client
.
After getting all the binaries, run the following commands:
$ mkdir matrix #Folder where random matrices are stored
$ ./matrix_generator matrix 10000 100 1000 #./matrix_generator folder_name matrix_count minimum_dimension maximum_dimension
$ ./server matrix 8080 #./server folder_name port
$ python client.py 127.0.0.1:8080 10000 1000 > result.txt #Testing on the listening port, sending 1000 concurrent requests each time, 10000 requests in total, save the raw response times to file `result.txt`
#Or simply use `ab` to test
WTFPL