aboutsummaryrefslogtreecommitdiffstats
path: root/thirdparty/apps/testapp/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/apps/testapp/README.md')
-rw-r--r--thirdparty/apps/testapp/README.md212
1 files changed, 212 insertions, 0 deletions
diff --git a/thirdparty/apps/testapp/README.md b/thirdparty/apps/testapp/README.md
new file mode 100644
index 0000000..83bc121
--- /dev/null
+++ b/thirdparty/apps/testapp/README.md
@@ -0,0 +1,212 @@
+# 1. BPS
+**NAME**
+bps
+
+**SYNOPSIS**
+bps [OPTIONS] [SERVER-ADDRESS]
+
+**DESCRIPTION**
+bps is used to test throughput.
+```
+ -h, --help help
+ -v, --verbose show more statistics
+ -e, --exact show exact value
+ -i, --interval=SECONDS report time(default:1s)
+ -l, --length=LENGTH message length(default:458 max:1024)
+ -B, --buffer=BUFFER recv buffer size(default:LENGTH max:1024)
+ -C, --core=COREMASK bound core mask HEX(default:0(no bind core))
+ -S, --send-only only send
+ -R, --recv-only only receive
+ -c, --client client mode
+ Client mode options:
+ -t, --time=SECOND test time(default:30s)
+ -b, --bind=ADDRESS bind address
+ -p, --parallel=# parallel number(default:1 max:128)
+ -D, --debug show debug information
+ ADDRESS: X.X.X.X:PORT default port:58177
+```
+**EXAMPLE**
+Server:
+```
+$./bps 192.168.1.1:6666 -l 1000
+```
+
+Client:
+```
+$./bps -c 192.168.1.1:6666 -l 1000
+```
+
+#2. CPS
+**NAME**
+cps
+
+**SYNOPSIS**
+cps [OPTIONS] [SERVER-ADDRESS]
+
+**DESCRIPTION**
+cps is used to test the connection rate.
+```
+ -i, --interval=# report time(default: 10s max:3600s)
+ -c, --client server address list for one thread
+ -e, --evnum epoll event number(default:256 max:1024)
+ -T, --time=# C test time(default: 300s max:604800s)
+ -d, --data=#[:#] C request and response data length(default:1:1 max:4096)
+ -r, --rate=#[k|m|w] C global connect rate per each thread(CPS, default: 10000 max:100000000)
+ -t, --thread=CONFIG set one net and thread(max: 128)
+ server=X.X.X.X:P server address set(max: 32)
+ core=# bind to core
+ client=X.X.X.X C client ip address set(max: 32 max ip: 256)
+ rate=# C set connect rate for this thread(default: use global set)
+ cf C client loop first(default: both)
+ sf C server loop first(default: both)
+ -D, --debug show debug information
+ -m, --more show more statistics
+ -v, --verbose show thread statistics
+ -h, --help help
+ IMPORTANT:
+ socket() EMFILE(24) error: ulimit -n 1048576
+ bind() EADDRINUSE(98) error: echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
+ connect() EADDRNOTAVAIL(99) error: echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
+ echo "3000 65534" > /proc/sys/net/ipv4/ip_local_port_range
+```
+
+**EXAMPLE**
+Server:
+```
+$./cps -t "server=192.168.1.1:8888"
+```
+Client:
+```
+$./cps -c -t "server=192.168.1.1:8888,rate=10"
+```
+
+# 3. LP
+**NAME**
+lp
+
+**SYNOPSIS**
+lp [OPTIONS] TEST-SET...
+
+**DESCRIPTION**
+lp test multiple connections, connect rate and close rate.
+```
+ -s, --server LIST set one server address list
+ X.Y.Z.M-N:P1-P2,...
+ -c, --client LIST set one client address list
+ CLIENT*SERVER: R.S.T.K-J:Pa-Pb,...*X.Y.Z.M-N:P1-P2,...
+ A,B,C,D*1,2 random link
+ A,B,C,D=1,2 A1B2C1D2
+ A,B,C,D}1,2 A1B1C1D1 A2B2C2D2
+ A,B,C,D{1,2 A1A2 B1B2 C1C2 D1D2
+ -b, --block set block mode for connecting(client only)
+ -n, --nodelay set nodelay
+ -i, --interval # report time(default:1s max:60s)
+ -m, --core #HEX set bind cpu core mask(hex mode)
+ -D, --debug show debug information
+ -w, --watch show watch time statistic
+ -e, --no-error #-# skip error
+ -E, --error-msg show error message
+ -C, --no-color no color
+ -v, --verbose show worker statistics
+ -h, --help help
+ TEST-SET for client
+ TARGET@TIME+UP-DOWN=QUERY:REPLY*TIMES-/PERIOD%WAIT (client only)
+ TARGET max connection(default: INFINITE)
+ @TIME max time(0 or default:INFINITE)
+ +UP connect rate(default: 0 no connnect; *: INFINITE)
+ -DOWN close rate(default: 0 no close; *: INFINITE)
+ =... IO set(default: no IO)
+ QUERY send query data len(8-65536)
+ :REPLY receive response data len(0-10485760; default: same with QUERY)
+ *TIMES- IO times(0 or default: INFINITE; suffix-: IO then close)
+ /PERIOD IO period time(0-3600s; default: one by one)
+ %WAIT first IO wait time(0-3600s; default: 0 no wait)
+ UNITS:
+ k=1000 m=1000k g=1000m w=10000 K=1024 M=1024K G=1024M
+ s=Seconds m=Minutes h=Hours
+
+ =QUERY:REPLY*TIMES-/PERIOD%WAIT
+This section set the send/recv action
+
+```
+**EXAMPLE**
+Server:
+```
+$./lp -s 192.168.1.1:1000-1999 -s 182.168.1.1:2000-2999
+ #each -s start 1 thread, open 1000 fd to listen
+```
+
+Client:
+```
+$./lp -c 192.168.1.100:10000-19999*192.168.1.1:1000-1999 TEST-SET
+ #each -c start 1 thread
+ #192.168.1.100:10000-19999 is client addresses
+ #192.168.1.1:1000-1999 are server addresses
+ #TEST-SET is client only, you can set some test case, see options
+```
+
+**TEST-SET EXAMPLES**
+
+```
+1. $./lp -c 192.168.1.100:10000-19999*192.168.1.1:1000-1999 1m+10k @10s 0-1k
+```
+
+Step1: target 1000000 connection, connect rate is 10k/s
+Step2: no target, sleep 10 seconds
+Step3: target 0 connection, close rate is 1k/s
+
+```
+2. $./lp -c 192.168.1.100:10000-19999*192.168.1.1:1000-1999 100000+10k-5k @10s 0-1k
+```
+Step1: target 100000 connection, both connect and close are execute, connect rate 10k/s, close rate 5k/s
+
+# 4. TE
+**NAME**
+te
+
+**SYNOPSIS**
+te [OPTIONS]
+
+**DESCRIPTION**
+te is used to test the test the basic functions of IPv6
+```
+l : v6_tcp_server_listen ( X::X PORT )
+L : v6_tcp_server_listen ( X::X PORT )
+
+c : v6_tcp_client_s ( X::X PORT )
+s : v6_tcp_server_shutdown_rd ( X::X PORT )
+d : v6_tcp_server_shutdown_wr ( X::X PORT )
+f : v6_tcp_server_shutdown_rdwr ( X::X PORT )
+
+1 : v4_tcp_client_s ( X.X.X.X PORT )
+2 : v4_tcp_server_shutdown_rd ( X.X.X.X PORT )
+3 : v4_tcp_server_shutdown_wr ( X.X.X.X PORT )
+
+U : test_v6_udp ( X::X )
+u : test_v4_udp ( X.X.X.X )
+t : test_v4_tcp ( X.X.X.X )
+
+b : v6_udp_close_select ( X::X PORT )
+```
+
+# 5. IP6
+**NAME**
+ip6
+
+**SYNOPSIS**
+ip6 [OPTIONS] SERVER-ADDRESS
+
+**DESCRIPTION**
+ip6 is used to test the test the basic functions of IPv6
+```
+ -b, --bind IP.PORT bind address
+ -c, --client client mode
+ -u, --udp udp mode
+ -n, --number # C packet number(default:LOOP)
+ -d, --delay # C seconds wait send next packet(default:1, 0: no delay)
+ -l, --length # C data length(default:100)
+ -o, --output # show received data(default:16)
+ -D, --debug show debug information
+ -v, --verbose show thread statistics
+ -h, --help help
+```