/memoptest

A quick python script for generating and validating memcached operations

Primary LanguagePHPOtherNOASSERTION

This recipe is designed for quick comparison and validation of memcached
clients.  It can be considered a good, but certainly not thorough 
microbenchmark.

The intent with the recipe is not to denegrate any particular client, but
rather to show what clients are capable of.  There are a number of 
native, high level language clients which have more than enough performance
for many applications, but are not nearing the limits of the server 
capabilities and/or the client platform capabilities.

The recipe is as follows:

0. Start four servers on different ports, each with 64MByte of cache.
1. Do a basic server load.  Load approximately 10,000 items, sizes varying
   between 1KByte and 1MByte.  The key of the item contains the MD5 of 
   the randomly generated bytes in the value.  The items must be up to 
   1000 unique actual data items, pregenerated so as to not affect the wall
   clock time.
2. Stop all workload.
3. Start getting keys and validating MD5 from at least two separate threads
   or processes.  Pseudorandomly select keys to fetch.
4. Discard the data for the first 5 seconds.  Run for 60 more seconds 
   counting the throughput (i.e. get operations/sec)
5. Report the results.

Future enhancements could include other kinds of operations and/or 
a less random (and therefore more application like) distribution of 
operations.

License is CDDL, meaning any modifications to CDDL files must be 
recontributed.

Changelog
20091207 first work on the PHP client