Difference between revisions of "Red5: Benchmarking dan Testing"
Onnowpurbo (talk | contribs) (New page: Red5Bench is a custom JMeter http://jakarta.apache.org/jmeter/ benchmark tool which will be able to profile and mimick multiple concurrent streams and connections to the Red5 server. It u...) |
Onnowpurbo (talk | contribs) |
||
Line 3: | Line 3: | ||
RTMPClient which produces custom callback methods for wrapping resultRecieved, wraps to extend the send params, aswell as implementing RTMPTClient. | RTMPClient which produces custom callback methods for wrapping resultRecieved, wraps to extend the send params, aswell as implementing RTMPTClient. | ||
− | + | http://red5.electroteque.org/dev/bench/RTMPClientExtended.zip | |
− | + | http://red5.electroteque.org/dev/bench/Red5Bench.zip | |
Still major issues trying to get asynchronous bench tests to produce results. Results file is not ok, but gui is showing returned calls ok. | Still major issues trying to get asynchronous bench tests to produce results. Results file is not ok, but gui is showing returned calls ok. | ||
Line 10: | Line 10: | ||
Usage: | Usage: | ||
− | ant build - will compile the benchmark application. | + | ant build - will compile the benchmark application. |
− | playback-test - Calls org.red5.server.bench.test.PlayBackTest | + | playback-test - Calls org.red5.server.bench.test.PlayBackTest |
− | callback-test - Calls org.red5.server.bench.test.CallbackTest | + | callback-test - Calls org.red5.server.bench.test.CallbackTest |
− | publish-test - Calls org.red5.server.bench.test.PublishTest | + | publish-test - Calls org.red5.server.bench.test.PublishTest |
− | sharedobject-test - Calls org.red5.server.bench.test.SharedObjectTest | + | sharedobject-test - Calls org.red5.server.bench.test.SharedObjectTest |
− | connect-plan - Runs ConnectionTestPlan.jmx test plan for connections. | + | connect-plan - Runs ConnectionTestPlan.jmx test plan for connections. |
− | playback-plan - Runs PlaybackTestPlan.jmx test plan for playback. | + | playback-plan - Runs PlaybackTestPlan.jmx test plan for playback. |
− | publish-plan - Runs PublishTestPlan.jmx test plan for publish. | + | publish-plan - Runs PublishTestPlan.jmx test plan for publish. |
− | so-plan - Runs SharedObjectPlan.jmx test plan for shared objects. | + | so-plan - Runs SharedObjectPlan.jmx test plan for shared objects. |
− | playback-plan-nogui - Runs PlaybackTestPlan.jmx test plan but logs results to a file. | + | playback-plan-nogui - Runs PlaybackTestPlan.jmx test plan but logs results to a file. |
− | publish-plan-nogui - Runs PublishTestPlan.jmx test plan but logs results to a file. | + | publish-plan-nogui - Runs PublishTestPlan.jmx test plan but logs results to a file. |
− | cb-plan-nogui - Runs CallbackTestPlan.jmx test plan but logs results to a file. | + | cb-plan-nogui - Runs CallbackTestPlan.jmx test plan but logs results to a file. |
− | cb-plan - Runs CallbackTestPlan.jmx test plan for callbacks. | + | cb-plan - Runs CallbackTestPlan.jmx test plan for callbacks. |
The profile file Red5BenchPlan.jmx has many different graph report and requesters setup. To change the defaults, inside a Jmeter instance load the profile file and click "Red5 Bench Request" java requester in the menu. | The profile file Red5BenchPlan.jmx has many different graph report and requesters setup. To change the defaults, inside a Jmeter instance load the profile file and click "Red5 Bench Request" java requester in the menu. | ||
Line 28: | Line 28: | ||
There is multiple arguments which can be configured: | There is multiple arguments which can be configured: | ||
− | + | port - the port number to connect with. | |
− | + | host - the hostname to connect with. | |
− | + | app - the server application name. | |
− | + | file - the file to request and stream. | |
Select the syncronizing timer "Concurrent User Timer", change the "Number of Simulated Users to Group by" to the ammount of concurrent requests to hit the server with (defaults to 100). | Select the syncronizing timer "Concurrent User Timer", change the "Number of Simulated Users to Group by" to the ammount of concurrent requests to hit the server with (defaults to 100). | ||
Line 41: | Line 41: | ||
Example directly running the tool in java: | Example directly running the tool in java: | ||
− | java org.red5.server.bench.test.Red5Bench -p 1935 -h localhost -a perfTest | + | java org.red5.server.bench.test.Red5Bench -p 1935 -h localhost -a perfTest |
− | java org.red5.server.bench.test.CallbackTest -p 1935 -h localhost -a perfTest --method echo --call-arg test | + | java org.red5.server.bench.test.CallbackTest -p 1935 -h localhost -a perfTest --method echo --call-arg test |
− | java org.red5.server.bench.test.PlayBackTest -p 1935 -h localhost -a perfTest -f videofile.flv | + | java org.red5.server.bench.test.PlayBackTest -p 1935 -h localhost -a perfTest -f videofile.flv |
− | java org.red5.server.bench.test.PublishTest -p 1935 -h localhost -a perfTest -f videofile.flv -d streams -n publishtest -m live (live/record/append) | + | java org.red5.server.bench.test.PublishTest -p 1935 -h localhost -a perfTest -f videofile.flv -d streams -n publishtest -m live (live/record/append) |
− | java org.red5.server.bench.test.SharedObjectTest -p 1935 -h localhost -a perfTest --shared-obj test --shared-obj-vals testvar:testval --shared-obj-vals testvar2:testval | + | java org.red5.server.bench.test.SharedObjectTest -p 1935 -h localhost -a perfTest --shared-obj test --shared-obj-vals testvar:testval --shared-obj-vals testvar2:testval |
Latest revision as of 09:21, 25 August 2011
Red5Bench is a custom JMeter http://jakarta.apache.org/jmeter/ benchmark tool which will be able to profile and mimick multiple concurrent streams and connections to the Red5 server. It uses an extended
RTMPClient which produces custom callback methods for wrapping resultRecieved, wraps to extend the send params, aswell as implementing RTMPTClient.
http://red5.electroteque.org/dev/bench/RTMPClientExtended.zip http://red5.electroteque.org/dev/bench/Red5Bench.zip
Still major issues trying to get asynchronous bench tests to produce results. Results file is not ok, but gui is showing returned calls ok.
Usage:
ant build - will compile the benchmark application. playback-test - Calls org.red5.server.bench.test.PlayBackTest callback-test - Calls org.red5.server.bench.test.CallbackTest publish-test - Calls org.red5.server.bench.test.PublishTest sharedobject-test - Calls org.red5.server.bench.test.SharedObjectTest connect-plan - Runs ConnectionTestPlan.jmx test plan for connections. playback-plan - Runs PlaybackTestPlan.jmx test plan for playback. publish-plan - Runs PublishTestPlan.jmx test plan for publish. so-plan - Runs SharedObjectPlan.jmx test plan for shared objects. playback-plan-nogui - Runs PlaybackTestPlan.jmx test plan but logs results to a file. publish-plan-nogui - Runs PublishTestPlan.jmx test plan but logs results to a file. cb-plan-nogui - Runs CallbackTestPlan.jmx test plan but logs results to a file. cb-plan - Runs CallbackTestPlan.jmx test plan for callbacks.
The profile file Red5BenchPlan.jmx has many different graph report and requesters setup. To change the defaults, inside a Jmeter instance load the profile file and click "Red5 Bench Request" java requester in the menu.
There is multiple arguments which can be configured:
port - the port number to connect with. host - the hostname to connect with. app - the server application name. file - the file to request and stream.
Select the syncronizing timer "Concurrent User Timer", change the "Number of Simulated Users to Group by" to the ammount of concurrent requests to hit the server with (defaults to 100).
If launching the profiler into Jmeter to start the benchmark choose Run -> Start in the menu.
You will see a counter in the top menu, the profile will not run until it reaches the concurrent request limit.
Example directly running the tool in java:
java org.red5.server.bench.test.Red5Bench -p 1935 -h localhost -a perfTest java org.red5.server.bench.test.CallbackTest -p 1935 -h localhost -a perfTest --method echo --call-arg test java org.red5.server.bench.test.PlayBackTest -p 1935 -h localhost -a perfTest -f videofile.flv java org.red5.server.bench.test.PublishTest -p 1935 -h localhost -a perfTest -f videofile.flv -d streams -n publishtest -m live (live/record/append) java org.red5.server.bench.test.SharedObjectTest -p 1935 -h localhost -a perfTest --shared-obj test --shared-obj-vals testvar:testval --shared-obj-vals testvar2:testval