Moment VS includes a tool for performing stress tests, rtmptool, which can imitate thousands of simultaneously connected RTMP clients. Command line parameters for rtmptool:
-n --num-clients <number> — Simulate N simultaneous clients. Default: 1
-s --server-addr <address> — Server address, IP:Port. Default: localhost:1935
-a --app <string> — Application name. Default: oflaDemo
-c --channel <string> — Name of the channel to subscribe to. Default: red5StreamDemo
-t --num-threads <number> — Number of threads to spawn. Default: 0, use a single thread.
-r --report-interval <number> — Interval between video frame reports. Default: 0, no reports.
--nonfatal-errors — Do not exit on the first error.
-h --help — Show help message.
Another stress testing tool is mod_test module, which generates pseudo video stream — a sequence of frames with a certain frame rate and size, filled with random data. Using mod_test and rtmptool one can assess how characteritics of a video stream affect server's throughput when a large number of clients is connected.
mod_test module configuration parameters:
mod_test/enable — enable mod_test module (yes/no). Default: "no".
mod_test/stream_name — name of the generated video stream. Default: "test".
mod_test/frame_duration — Duration of a single frame in milliseconds. Default: 40 milliseconds (25 frames per second).
mod_test/frame_size — frame size in bytes. Default: 2500 bytes.
mod_test/start_timestamp — timestamp of the first generated video message. Default: 0.
mod_test/keyframe_interval — distance between keyframes in the pseudo video stream, in frames. Default: 10 frames.
mod_test/burst_width — Number of frames to generate in a single iteration (doesn't affect average frame rate). Default: 1.
mod_test/prechunk_size — RTMP chunk size in bytes. Video messages are divided into chunks before being sent to clients. If prechunk_size is set to 0, then division of messages into chunks of default length will happen separately for every client. Default: 65536 bytes.
mod_test/same_pages — if enabled, then all video frames are represented by the same set of pages, which does not change. If disabled, then every frame is generated separately in a new set of pages. Default: "on" (enabled).
Back to Contents