A package to enqueue a variable number of jobs with variably distributed TIME x CPU "areas"
Project description
A package for creating and enqueueing stressypy jobs
====================================================
``rqpop`` uses the python package ``stressypy`` to create a certain number of cpu-stressing jobs for a variably
distributed amount of time, the distribution type and seed being specified by the user.
It creates ``stressypy``'s ``JobBlock`` objects which contain pertinent information for queueing these test jobs to
test queueing algorithms by enqueueing a certain number of randomly 'sized' jobs, which simulates the real job influx
of a webservice, for example. The jobs are enqueued with RQ (Redis Queue).
JobBlocks:
++++++++++
refer to https://github.com/salbrandi/stressypy#jobblock-attributes for documentation on JobBlock objects
Installation
++++++++++++
``rqpop`` can be installed with ``pip install rqpop`` and will auto-install all dependencies.
Alternatively, it can be cloned manually from the url: https://github.com/salbrandi/rqpop.git
or the tarfile can be downloaded from the url: https://github.com/salbrandi/rqpop/archive/0.1.tar.gz
and setup with ``python setup.py install``
| In order to run rqpop, you must have a REDIS server running and RQ ``rqworkers`` listening on the default queue:
|
| Documentation for quickly setting up a REDIS server can be found here: https://redis.io/topics/quickstart
| Full REDIS documentaiton here: https://redis.io/documentation
|
| Documentation for RQ (Redis Queue) cna be found here: http://python-rq.org/
| but for most users a worker can be started, listening on the default queue with simply the ``rqworker`` command.
Directions
++++++++++
``rqpop`` runs using the command ``rqpop queue`` with the number of jobs desired and the max time allowed being passed as arguments.
The help page:
|Usage: rqpop queue [OPTIONS] NUM_JOBS MAX_TIME
|
|Options:
| --seed TEXT The seed to be internalized for the number distribution
| --dist TEXT the distirbution to be used for psuedo-random generation
| --mnc INTEGER the minimum number of cpus to be used, default 1
| --mxc INTEGER maximum number of cores a job should be able to require,
| default: maximum configured cores
| --mnt INTEGER minimum amount of time the jobs should run for, default 1
| --q TEXT the queue that the jobs should be enqueued to, default:
| "default"
| --help Show this message and exit.
Distributions supported are:
- Log Normal: ``normal`` - default
- Box: ``box``
- Spike/Dirac/Delta: ``spike``
- Exponential/Power: ``power``
Examples
--------
* ``rqpop queue 10 12 --seed 0 --distribution normal``:
creates and enqueues 10 jobs normally distributed with seed 0 and a max time of 12 seconds
* ``rqpop queue 21456 --seed 1023041 --distribution power --mnc 2 --mxc 10 -q high``:
creates and enqueues 21, 456 jobs exponentially distributed with seed 1023041, min cores 2, max cores 10 on the queue 'high
====================================================
``rqpop`` uses the python package ``stressypy`` to create a certain number of cpu-stressing jobs for a variably
distributed amount of time, the distribution type and seed being specified by the user.
It creates ``stressypy``'s ``JobBlock`` objects which contain pertinent information for queueing these test jobs to
test queueing algorithms by enqueueing a certain number of randomly 'sized' jobs, which simulates the real job influx
of a webservice, for example. The jobs are enqueued with RQ (Redis Queue).
JobBlocks:
++++++++++
refer to https://github.com/salbrandi/stressypy#jobblock-attributes for documentation on JobBlock objects
Installation
++++++++++++
``rqpop`` can be installed with ``pip install rqpop`` and will auto-install all dependencies.
Alternatively, it can be cloned manually from the url: https://github.com/salbrandi/rqpop.git
or the tarfile can be downloaded from the url: https://github.com/salbrandi/rqpop/archive/0.1.tar.gz
and setup with ``python setup.py install``
| In order to run rqpop, you must have a REDIS server running and RQ ``rqworkers`` listening on the default queue:
|
| Documentation for quickly setting up a REDIS server can be found here: https://redis.io/topics/quickstart
| Full REDIS documentaiton here: https://redis.io/documentation
|
| Documentation for RQ (Redis Queue) cna be found here: http://python-rq.org/
| but for most users a worker can be started, listening on the default queue with simply the ``rqworker`` command.
Directions
++++++++++
``rqpop`` runs using the command ``rqpop queue`` with the number of jobs desired and the max time allowed being passed as arguments.
The help page:
|Usage: rqpop queue [OPTIONS] NUM_JOBS MAX_TIME
|
|Options:
| --seed TEXT The seed to be internalized for the number distribution
| --dist TEXT the distirbution to be used for psuedo-random generation
| --mnc INTEGER the minimum number of cpus to be used, default 1
| --mxc INTEGER maximum number of cores a job should be able to require,
| default: maximum configured cores
| --mnt INTEGER minimum amount of time the jobs should run for, default 1
| --q TEXT the queue that the jobs should be enqueued to, default:
| "default"
| --help Show this message and exit.
Distributions supported are:
- Log Normal: ``normal`` - default
- Box: ``box``
- Spike/Dirac/Delta: ``spike``
- Exponential/Power: ``power``
Examples
--------
* ``rqpop queue 10 12 --seed 0 --distribution normal``:
creates and enqueues 10 jobs normally distributed with seed 0 and a max time of 12 seconds
* ``rqpop queue 21456 --seed 1023041 --distribution power --mnc 2 --mxc 10 -q high``:
creates and enqueues 21, 456 jobs exponentially distributed with seed 1023041, min cores 2, max cores 10 on the queue 'high
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rqpop-0.0.2.tar.gz
(4.8 kB
view hashes)