TSLoad is a complex set of tools that allow to simulate computer workloads in realistic way. Unlike benchmarks that intended to measure maximum performance of system by running it at maximum throughput (and through that forgetting about request latency that is in our opinion is important too), TSLoad is intended to simulate workload that generated by N users. It is also modular, so basically it doesn't support any workload class at all, like ab is intended to benchmark web-servers or iozone - filesystems. TSLoad is an engine that provides capabilities to describe workload in flexible way, and takes some responsibilities to create multiple threads, and process experiment config in JSON format, and pass it to a module.
TSLoad have four operating modes:
- Microbenchmarking mode
- Simulation mode
- Time-series mode
- Trace-reproduction mode
It is also crossplatform and currently supports Linux, Windows and Solaris.
Detailed documentation may be found here: myaut.github.io/tsload/
TSLoad is available as Ubuntu PPA:
$ sudo add-apt-repository ppa:myaut/tsload
$ sudo apt-get install tsload tsload-dev tsload-doc
For TSLoad you will need the following prerequisites:
- Python 2.6 or 2.7 (for SCons build system and various build scripts) - www.python.org.
Also you will need to install pywin32 extensions on Windows: sourceforge.net/projects/pywin32/ - SCons build 2.3.1 or newer - www.scons.org.
- Compiler and linker
- For Unix and Linux - GNU C/C++ Compiler 4.4. Proprietary Unix compilers such as IBM XLc and SunCC are currenly not supported
- For Windows - Visual Studio 2010 Express (MinGW is not tested)
Then build a TSLoad:
$ scons --update-build --prefix=/opt/tsload install
if option --prefix is ommitted, binary files is placed under build/tsload- directory
To build TSLoad documentation, use the following command:
$ scons --doc-format=html doc
Output documentation is placed under build/doc directory
More detailed information on building TSLoad is available in documentation: Building TSLoad
Now try to run some workloads with it:
$ cp -r /var/lib/tsload/sample tsload-sample
$ tsexperiment -e tsload-sample/ run
(If you manually built TSLoad, sample directory may be in /opt/tsload/var/tsload/sample).
Currently, TSLoad is shipped with busy_wait
for generating CPU busy loops, simpleio
for disk and file I/O workloads and http
modules. You can create your own modules with it.
TSLoad was developed by Sergey Klyaus (Tune-IT/ITMO University) Idea, architecture and design were contributed by Boris Timchenko and Dmitry Ivanov (both ITMO University)
Contact us: [email protected]