Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

socoket -> socket #271

Merged
merged 2 commits into from
Dec 1, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 47 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ sudo yum install libatomic

``` sh
# ubuntu 20.04
sudo apt install libatomic1
sudo apt install libatomic1
```

### make
Expand Down Expand Up @@ -61,50 +61,50 @@ Usage: emqtt_bench conn [--help <help>] [-d <dist>] [-h [<host>]]

--help help information
-d, --dist enable distribution port
-h, --host mqtt server hostname or comma-separated
-h, --host mqtt server hostname or comma-separated
hostnames [default: localhost]
-p, --port mqtt server port number [default: 1883]
-V, --version mqtt protocol version: 3 | 4 | 5 [default: 5]
-c, --count max count of clients [default: 200]
-n, --startnumber start number [default: 0]
-Q, --qoe Enable QoE tracking [default: false]
-i, --interval interval of connecting to the broker
-i, --interval interval of connecting to the broker
[default: 10]
-u, --username username for connecting to server
-P, --password password for connecting to server
-k, --keepalive keep alive in seconds [default: 300]
-C, --clean clean session [default: true]
-x, --session-expiry Set 'Session-Expiry' for persistent sessions
-x, --session-expiry Set 'Session-Expiry' for persistent sessions
(seconds) [default: 0]
-S, --ssl ssl socoket for connecting to server
-S, --ssl ssl socket for connecting to server
[default: false]
--certfile client certificate for authentication, if
--certfile client certificate for authentication, if
required by server
--keyfile client private key for authentication, if
--keyfile client private key for authentication, if
required by server
--quic QUIC transport [default: false]
--load-qst load quic session tickets from dets file
--ifaddr local ipaddress or interface address
--prefix client id prefix
-s, --shortids use short ids for client ids [default: false]
-l, --lowmem enable low mem mode, but use more CPU
--num-retry-connect number of times to retry estabilishing a
--num-retry-connect number of times to retry estabilishing a
connection before giving up [default: 0]
-R, --connrate connection rate(/s), default: 0, fallback to
-R, --connrate connection rate(/s), default: 0, fallback to
use --interval [default: 0]
--force-major-gc-interval interval in milliseconds in which a major GC
will be forced on the bench processes. a
value of 0 means disabled (default). this
only takes effect when used together with
--force-major-gc-interval interval in milliseconds in which a major GC
will be forced on the bench processes. a
value of 0 means disabled (default). this
only takes effect when used together with
--lowmem. [default: 0]
--log_to Control where the log output goes. console:
directly to the console null: quietly,
--log_to Control where the log output goes. console:
directly to the console null: quietly,
don't output any logs. [default: console]
--prometheus Enable metrics collection via Prometheus.
Usually used with --restapi to enable
scraping endpoint.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
Can be set to IP:Port to listen on a specific IP and Port,
or just Port to listen on all interfaces on
that port. [default: disabled]
Expand Down Expand Up @@ -136,13 +136,13 @@ Usage: emqtt_bench sub [--help <help>] [-d <dist>] [-h [<host>]] [-p [<port>]] [
-p, --port mqtt server port number [default: 1883]
-V, --version mqtt protocol version: 3 | 4 | 5 [default: 5]
-c, --count max count of clients [default: 200]
-n, --startnumber The start point when assigning sequence numbers to clients. This is useful when running
multiple emqtt-bench instances to test the same broker (cluster), so the start number can be
-n, --startnumber The start point when assigning sequence numbers to clients. This is useful when running
multiple emqtt-bench instances to test the same broker (cluster), so the start number can be
planned to avoid client ID collision [default: 0]
-i, --interval interval of connecting to the broker [default: 10]
-t, --topic topic subscribe, support %u, %c, %i variables
--payload-hdrs Handle the payload header from received message. Publish side must have the same option enabled
in the same order. cnt64: Check the counter is strictly increasing. ts: publish latency counting.
--payload-hdrs Handle the payload header from received message. Publish side must have the same option enabled
in the same order. cnt64: Check the counter is strictly increasing. ts: publish latency counting.
[default: ]
-q, --qos subscribe qos [default: 0]
-Q, --qoe Enable QoE tracking [default: false]
Expand All @@ -151,32 +151,32 @@ Usage: emqtt_bench sub [--help <help>] [-d <dist>] [-h [<host>]] [-p [<port>]] [
-k, --keepalive keep alive in seconds [default: 300]
-C, --clean clean start [default: true]
-x, --session-expiry Set 'Session-Expiry' for persistent sessions (seconds) [default: 0]
-S, --ssl ssl socoket for connecting to server [default: false]
-S, --ssl ssl socket for connecting to server [default: false]
--certfile client certificate for authentication, if required by server
--keyfile client private key for authentication, if required by server
--ws websocket transport [default: false]
--quic QUIC transport [default: false]
--load-qst load quic session tickets from dets file
--ifaddr local ipaddress or interface address
--prefix Client ID prefix. If not provided '$HOST_bench_(pub|sub)_$RANDOM_$N' is used, where $HOST is
either the host name or the IP address provided in the --ifaddr option, $RANDOM is a random
number and $N is the sequence number assigned for each client. If provided, the $RANDOM suffix
--prefix Client ID prefix. If not provided '$HOST_bench_(pub|sub)_$RANDOM_$N' is used, where $HOST is
either the host name or the IP address provided in the --ifaddr option, $RANDOM is a random
number and $N is the sequence number assigned for each client. If provided, the $RANDOM suffix
will not be added.
-s, --shortids Use short client ID. If --prefix is provided, the prefix is added otherwise client ID is the
-s, --shortids Use short client ID. If --prefix is provided, the prefix is added otherwise client ID is the
assigned sequence number. [default: false]
-l, --lowmem enable low mem mode, but use more CPU
--num-retry-connect number of times to retry estabilishing a connection before giving up [default: 0]
-R, --connrate connection rate(/s), default: 0, fallback to use --interval [default: 0]
--force-major-gc-interval interval in milliseconds in which a major GC will be forced on the bench processes. a value of
0 means disabled (default). this only takes effect when used together with --lowmem. [default:
--force-major-gc-interval interval in milliseconds in which a major GC will be forced on the bench processes. a value of
0 means disabled (default). this only takes effect when used together with --lowmem. [default:
0]
--log_to Control where the log output goes. console: directly to the console null: quietly, don't
--log_to Control where the log output goes. console: directly to the console null: quietly, don't
output any logs. [default: console]
--prometheus Enable metrics collection via Prometheus.
Usually used with --restapi to enable
scraping endpoint.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
Can be set to IP:Port to listen on a specific IP and Port,
or just Port to listen on all interfaces on
that port. [default: disabled]
Expand Down Expand Up @@ -209,15 +209,15 @@ Usage: emqtt_bench pub [--help <help>] [-d <dist>] [-h [<host>]] [-p [<port>]] [
-p, --port mqtt server port number [default: 1883]
-V, --version mqtt protocol version: 3 | 4 | 5 [default: 5]
-c, --count max count of clients [default: 200]
-n, --startnumber The start point when assigning sequence numbers to clients. This is useful when running
multiple emqtt-bench instances to test the same broker (cluster), so the start number can be
-n, --startnumber The start point when assigning sequence numbers to clients. This is useful when running
multiple emqtt-bench instances to test the same broker (cluster), so the start number can be
planned to avoid client ID collision [default: 0]
-i, --interval interval of connecting to the broker [default: 10]
-I, --interval_of_msg interval of publishing message(ms) [default: 1000]
-u, --username username for connecting to server
-P, --password password for connecting to server
-t, --topic topic subscribe, support %u, %c, %i, %s variables
--payload-hdrs If set, add optional payload headers. cnt64: strictly increasing counter(64bit) per publisher
--payload-hdrs If set, add optional payload headers. cnt64: strictly increasing counter(64bit) per publisher
ts: Timestamp when emit example: --payload-hdrs cnt64,ts [default: ]
-s, --size payload size [default: 256]
-m, --message set the message content for publish
Expand All @@ -228,39 +228,39 @@ Usage: emqtt_bench pub [--help <help>] [-d <dist>] [-h [<host>]] [-p [<port>]] [
-C, --clean clean start [default: true]
-x, --session-expiry Set 'Session-Expiry' for persistent sessions (seconds) [default: 0]
-L, --limit The max message count to publish, 0 means unlimited [default: 0]
-S, --ssl ssl socoket for connecting to server [default: false]
-S, --ssl ssl socket for connecting to server [default: false]
--certfile client certificate for authentication, if required by server
--keyfile client private key for authentication, if required by server
--ws websocket transport [default: false]
--quic QUIC transport [default: false]
--load-qst load quic session tickets from dets file
--ifaddr One or multiple (comma-separated) source IP addresses
--prefix Client ID prefix. If not provided '$HOST_bench_(pub|sub)_$RANDOM_$N' is used, where $HOST is
either the host name or the IP address provided in the --ifaddr option, $RANDOM is a random
number and $N is the sequence number assigned for each client. If provided, the $RANDOM
--prefix Client ID prefix. If not provided '$HOST_bench_(pub|sub)_$RANDOM_$N' is used, where $HOST is
either the host name or the IP address provided in the --ifaddr option, $RANDOM is a random
number and $N is the sequence number assigned for each client. If provided, the $RANDOM
suffix will not be added.
-s, --shortids Use short client ID. If --prefix is provided, the prefix is added otherwise client ID is the
-s, --shortids Use short client ID. If --prefix is provided, the prefix is added otherwise client ID is the
assigned sequence number. [default: false]
-l, --lowmem enable low mem mode, but use more CPU
-F, --inflight maximum inflight messages for QoS 1 an 2, value 0 for 'infinity' [default: 1]
-w, --wait-before-publishing wait for all publishers to have (at least tried to) connected before starting publishing
-w, --wait-before-publishing wait for all publishers to have (at least tried to) connected before starting publishing
[default: false]
--max-random-wait maximum randomized period in ms that each publisher will wait before starting to publish
--max-random-wait maximum randomized period in ms that each publisher will wait before starting to publish
(uniform distribution) [default: 0]
--min-random-wait minimum randomized period in ms that each publisher will wait before starting to publish
--min-random-wait minimum randomized period in ms that each publisher will wait before starting to publish
(uniform distribution) [default: 0]
--num-retry-connect number of times to retry estabilishing a connection before giving up [default: 0]
-R, --connrate connection rate(/s), default: 0, fallback to use --interval [default: 0]
--force-major-gc-interval interval in milliseconds in which a major GC will be forced on the bench processes. a value
of 0 means disabled (default). this only takes effect when used together with --lowmem.
--force-major-gc-interval interval in milliseconds in which a major GC will be forced on the bench processes. a value
of 0 means disabled (default). this only takes effect when used together with --lowmem.
[default: 0]
--log_to Control where the log output goes. console: directly to the console null: quietly,
--log_to Control where the log output goes. console: directly to the console null: quietly,
don't output any logs. [default: console]
--prometheus Enable metrics collection via Prometheus.
Usually used with --restapi to enable
scraping endpoint.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
--restapi Enable REST API for monitoring and control.
For now only serves /metrics.
Can be set to IP:Port to listen on a specific IP and Port,
or just Port to listen on all interfaces on
that port. [default: disabled]
Expand Down
8 changes: 4 additions & 4 deletions README_FOR_DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Usage: emqtt_bench conn [--help <help>] [-h [<host>]] [-p [<port>]]
-P, --password password for connecting to server
-k, --keepalive keep alive in seconds [default: 300]
-C, --clean clean session [default: true]
-S, --ssl ssl socoket for connecting to server [default: false]
-S, --ssl ssl socket for connecting to server [default: false]
--certfile client certificate for authentication, if required by
server
--keyfile client private key for authentication, if required by
Expand Down Expand Up @@ -70,14 +70,14 @@ Usage: emqtt_bench sub [--help <help>] [-h [<host>]] [-p [<port>]]
-P, --password password for connecting to server
-k, --keepalive keep alive in seconds [default: 300]
-C, --clean clean start [default: true]
-S, --ssl ssl socoket for connecting to server [default: false]
-S, --ssl ssl socket for connecting to server [default: false]
--certfile client certificate for authentication, if required by server
--keyfile client private key for authentication, if required by server
--ws websocket transport [default: false]
--ifaddr local ipaddress or interface address
```

For example, create 50K concurrent connections at the arrival rate of 100/sec:
For example, create 50K concurrent connections at the arrival rate of 100/sec:

```sh
docker run -it emqtt_bench sub -c 50000 -i 10 -t bench/%i -q 2
Expand Down Expand Up @@ -113,7 +113,7 @@ Usage: emqtt_bench pub [--help <help>] [-h [<host>]] [-p [<port>]]
-r, --retain retain message [default: false]
-k, --keepalive keep alive in seconds [default: 300]
-C, --clean clean start [default: true]
-S, --ssl ssl socoket for connecting to server [default: false]
-S, --ssl ssl socket for connecting to server [default: false]
--certfile client certificate for authentication, if required by server
--keyfile client private key for authentication, if required by server
--ws websocket transport [default: false]
Expand Down
Loading
Loading