diff options
Diffstat (limited to 'thirdparty/apps/testapp/README.md')
-rw-r--r-- | thirdparty/apps/testapp/README.md | 212 |
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 +``` |