The program celeste-profiler is a simple profiling client used to measure a variety of performance and load related tests usually involving a single Celeste node and multiple, concurrent clients.
The output of each test is a line of text containing comma-separated-values for the measured results. Each line contains, in left-to-right order, the number of concurrent samples, the minimum value, the mean value, the range of values, the median value, and the maximum value. The output is either to a named file or to the standard output.
celeste-profiler [--celeste-address address:port] [test*]
The default value for the --celeste-address parameter is 127.0.0.1:14000 which corresponds to TCP port 14000 on the local host.
If the programme is invoked without a value for the test parameter it will enter into a simple interactive loop where commands can be entered as input strings.
For example, running the profiler on a 2.93Ghz MacPro running 12 Celeste nodes:
$ celeste-profiler rtt:10,100,10,100,- # Round Trip Time: 10 to 100 by 10 clients each performing 100 operations Concurrent,Minimum,Mean,Range,Median,Maximum 10,2,5,4,6,6 20,3,9,8,10,11 30,7,11,6,12,13 40,10,13,4,14,14 50,11,15,7,16,18 60,14,17,5,18,19 70,16,21,8,22,24 80,17,24,10,25,27 90,18,29,14,30,32 100,20,29,12,30,32
Round-trip-time
This test measures the number of milliseconds to send a single round-trip message from the client to a Celeste node.
rtt:<initial>,<final>,<step>,<count>,<output>
initial: the initial number of concurrent clients
final: the final number of concurrent clients
step: the increment of the number of concurrent clients for each test
count: the number of messages to exchange.
output: the name of the output file, or '-' for standard output.
Bandwidth
This test measures the number of bytes-per-second that can be copied, message by message, from the client to the Celeste node and back.
bps:<initial>,<final>,<step>,<count>,<size>,<output>
initial: the initial number of concurrent clients
final: the final number of concurrent clients
step: the increment of the number of concurrent clients for each test
count: the number of messages to exchange.
size: the number of bytes in each message payload.
output: the name of the output file, or '-' for standard output.
Be aware of the memory requirement for exchanging final*size messages.
You may need adjustments to the maximum memory sizes for the JVM running celeste-profile.
Credentials
This test creates a set of unique credentials.
creds:<count>,<output>
count: the number of credentials to create
output: the name of the output file, or '-' for standard output.
Create
This test creates a set of unique files.
create:<initial>,<final>,<step>,<count>,<output>
initial: the initial number of concurrent clients
final: the final number of concurrent clients
step: the increment of the number of concurrent clients for each test
count: the number of files to create
output: the name of the output file, or '-' for standard output.
Write
This test writes data to a file.
write:<initial>,<final>,<step>,<count>,<output>
initial: the initial number of concurrent clients
final: the final number of concurrent clients
step: the increment of the number of concurrent clients for each test
count: the writes to perform
output: the name of the output file, or '-' for standard output.
Read
This test reads data from a file
read:<initial>,<final>,<step>,<count>,<output>
initial: the initial number of concurrent clients
final: the final number of concurrent clients
step: the increment of the number of concurrent clients for each test
count: the number of reads to perform
output: the name of the output file, or '-' for standard output.