Back to home page

Enduro/X

 
 

    


0001 EXBENCHCL(8)
0002 ============
0003 :doctype: manpage
0004 
0005 
0006 NAME
0007 ----
0008 exbenchcl - Enduro/X benchmark tool
0009 
0010 
0011 SYNOPSIS
0012 --------
0013 exbenchcl ['OPTIONS']
0014 
0015 
0016 DESCRIPTION
0017 -----------
0018 *exbenchcl* is Enduro/X benchmark tool. Tool is used for benchmarking standard
0019 *tpcall(3)* request/reply messages. Also tool supports persistent queue *tpenqueue(3)*
0020 and *tpdequeue(3)* benchmarking. Tools supports multi-threading and multi-processing.
0021 Test duration can be limited either by specified runtime in seconds or by optional
0022 number of messages processed by each processing unit (thread or processes).
0023 
0024 Currently supported data buffer format is *UBF*. Data loaded to UBF is loaded
0025 in following way (may be combined):
0026 
0027 . Data loaded from command line argument *-b* which is in format of *tpjsontoubf(3)*
0028 
0029 . Random data generated and set in specified UBF CARRAY field in CLI options.
0030 
0031 
0032 The benchmark result is appended to benchmark output file, in following format:
0033 
0034 --------------------------------------------------------------------------------
0035 
0036 "Configuration" "MsgSize" "CallsPerSec"
0037 "<config_name>" <msg_size_in_bytes> <calls_per_second>
0038 "<config_name>" <msg_size_in_bytes> <calls_per_second>
0039 ...
0040 
0041 --------------------------------------------------------------------------------
0042 
0043 When performing benchmark to persistent queue, the default mode is to enqueue
0044 and dequeue message.
0045 
0046 *WARNING*: Binary is experimental and may be changed in future releases (including
0047 but not limited with replaced CLI flags, etc).
0048 
0049 ENVIRONMENT
0050 -----------
0051 [*NDRX_BENCH_FILE*]::
0052 Benchmark output text file name. If not set, default name *test.out* is written
0053 in current directory.
0054 
0055 [*NDRX_BENCH_CONFIGNAME*]::
0056 Configuration name used in benchmark file. If not specified, default value *test*
0057 is used.
0058 
0059 OPTIONS
0060 -------
0061 [*-n* 'NR_OF_THREADS']::
0062 Number of worker threads. In fork mode (*-F*), this configures the number of worker
0063 forked processes. Default is *1*.
0064 
0065 [*-s* 'CALL_SERVICE_NAME']::
0066 This configures the target service name. For queue testing mode (*-Q* specified), 
0067 this identifies the target persistent queue name. In case if using multiple 
0068 service (*-N* specified) names or queues, then actual service / queue name used 
0069 by thread is constructed 'CALL_SERVICE_NAME' appended with NNN, formatted as 
0070 current thread number by modulus of the total number of services (*-N* value). 
0071 Total service name length must not be longer than 30 symbols (name is truncated 
0072 to 30 chars). Default is *EXBENCH*.
0073 
0074 [*-t* 'RUN_TIME_SECONDS']::
0075 Number of seconds for test to run. The default is *60*.
0076 
0077 [*-d* 'OUTPUT_DIRECTOR']::
0078 Optional flag for changing output directory where object file is generated. If
0079 parameter is not set, current directory is used.
0080 
0081 [*-b* 'SAMPLE_DATA_STRING']::
0082 UBF sample data in form of *tpjsontoubf(3)*. 1024 bytes are allocated for target
0083 buffer.
0084 
0085 [*-S* 'RANDOM_DATA_SIZE']::
0086 This specified random field size (field specified by *-f*) in bytes. The default
0087 value is *1024*.
0088 
0089 [*-p* 'PRIO']::
0090 Absolute call priority, if specified then before *tpcall(3)* or *tpenqueue(3)*
0091 the *tpsprio(3)* is executed by worker thread or process.
0092 
0093 [*-P*]::
0094 Plot the results in benchmark output file. If this parameter is not specified,
0095 results are not written to benchmark output file.
0096 
0097 [*-f* 'UBF_FIELD_NAME']::
0098 This parameter specifies CARRAY typed field name were random blob data of size specified
0099 by *-S* shall be loaded.
0100 
0101 [*-F*]::
0102 Use fork mode, instead of threads.
0103 
0104 [*-N* 'NUMBER_OF_SERVICES']::
0105 This parameter enables multi service/queue mode and in the same time specifies 
0106 total number of services or queues used in test. The default value is *0*, meaning
0107 that service name specified in *-s* is used without appending with the service/queue
0108 number.
0109 
0110 [*-Q* 'QUEUE_SPACE_NAME']::
0111 This parameter if set enables persistent queue tests and at the same time it
0112 specifies the queue space name used for *tpenqueue(3)* and *tpdequeue(3)* calls.
0113 
0114 [*-A*]::
0115 Enable testing of *tmqueue(8)* automatic forwarding queue. During the test
0116 specified run-time, messages are enqueued only. Once time (or message count
0117 *-R*) have been exceeded, the worker thread/process will perform periodic
0118 peek to message queue, to ensure that count is 0 (thus all messages have been
0119 forwarded). By default if *-A* or *-E* flags are not specified, then persistent
0120 queue benchmark is performed as pair of *tpenqueue(3)* and *tpdequeue(3)* operations.
0121 
0122 [*-E*]::
0123 Persist messages only (for *-Q* mode). Thus only *tpenqueue(3)* is executed.
0124 
0125 [*-R* 'NUMBER_OF_REQUESTS']::
0126 If set, then this parameter limits the benchmarking additionally to number
0127 of messages processed by worker thread. Benchmark will terminate in either
0128 time is reached or number of requests reached, which ever comes first. Total
0129 number of requests is made by test is multiplied by worker thread/process count.
0130 
0131 [*-T* 'TRANSACTION_TIMEOUT']::
0132 If flag is set and value 'TRANSACTION_TIMEOUT' is greater than 0, worker threads
0133 will perform calls in global transaction. This means that *exbenchcl* must
0134 have proper transaction environment. If this flag is not set, the XATMI calls
0135 are not run in transaction mode.
0136 
0137 [*-I*]::
0138 Used for process to wait for *tpnotify(3)* call from server back to benchmark
0139 client. In this mode, benchmark tool sets the XATMI client id in *EX_CLTID* UBF
0140 field. When *exbenchsv* receives the request and if it sees that *EX_CLTID* is set,
0141 it performs the tpnotify() call with the request buffer and only after
0142 that performs tpreturn().
0143 
0144 [*-e*]::
0145 Perform *tppost(3)* instead of *tpcall(3)*. If parameter is set, event name
0146 is set in *-s* parameter.
0147 
0148 [*-h*]::
0149 Print usage.
0150 
0151 EXIT STATUS
0152 -----------
0153 *0*::
0154 Success
0155 
0156 *1*::
0157 Failure
0158 
0159 
0160 CONFIGURATION EXAMPLE
0161 ---------------------
0162 
0163 Responder service in *ndrxconfig.xml(5)*, single service name mode *-N* (not set or 0).
0164 
0165 --------------------------------------------------------------------------------
0166 
0167     <server name="exbenchsv">
0168             <srvid>1800</srvid>
0169             <min>15</min>
0170             <max>15</max>
0171             <sysopt>-e /tmp/EXBENCH</sysopt>
0172     </server>
0173 
0174 --------------------------------------------------------------------------------
0175 
0176 Responder service in *ndrxconfig.xml(5)*, multi-service mode, 5 services:
0177 
0178 --------------------------------------------------------------------------------
0179 
0180     <server name="exbenchsv">
0181             <srvid>1800</srvid>
0182             <min>15</min>
0183             <max>15</max>
0184             <sysopt>-e /tmp/EXBENCH</sysopt>
0185             <appopt>-N5</appopt>
0186     </server>
0187 
0188 --------------------------------------------------------------------------------
0189 
0190 EXAMPLE
0191 -------
0192 
0193 Benchmark of UBF buffer at 1024 bytes with 5 threads:
0194 
0195 --------------------------------------------------------------------------------
0196 
0197 $ exbenchcl -n5 -P -t20 -b "{}" -f EX_DATA -S1024
0198 
0199 --------------------------------------------------------------------------------
0200 
0201 Benchmark of 10 threads, to 5 service names
0202 
0203 --------------------------------------------------------------------------------
0204 
0205 $ exbenchcl -n10 -P -t20 -b "{}" -f EX_DATA -S1024 -N5
0206 
0207 --------------------------------------------------------------------------------
0208 
0209 Persistent queue benchmark to queue space named *SAMPLESPACE*. Queue name
0210 used is *TESTQ1*:
0211 
0212 --------------------------------------------------------------------------------
0213 
0214 $ exbenchcl -n10 -P -t20 -b "{}" -f EX_DATA -S1024 -QSAMPLESPACE -sTESTQ1
0215 
0216 --------------------------------------------------------------------------------
0217 
0218 
0219 BUGS
0220 ----
0221 Report bugs to support@mavimax.com
0222 
0223 
0224 SEE ALSO
0225 --------
0226 *exbenchsv(8)* *ndrxconfig.xml(5)*
0227 
0228 
0229 COPYING
0230 -------
0231 (C) Mavimax, Ltd
0232