mosquitto并发测试怎么测试性能

拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3ad7b37b3646437c-ua98).
重新安装浏览器,或使用别的浏览器博客访问: 698720
博文数量: 189
注册时间:
认证徽章:
修缘(需要交流的请加我的QQ )
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 开源技术
mosquitto命令参数说明
1. -c &配置文件
从文件中加载配置参数 如果没有指定默认路径为/etc/mosquitto/mosquitto.conf
2. -d & 表示以后台守护进程的形式启动
3. -p & 指定监听端口 默认为1883
4. -v &监控日志 &类似于在配置文件中把log_type 设置为all
mosquitto broker状态监控
客户端可以通过订阅$SYS层级的话题来监控broker的相关信息
1.$SYS/broker/bytes/received &收到的所有字节数
2.$SYS/broker/bytes/sent &发送的所有字节数
3.$SYS/broker/clients/connected 当前在线的客户端数
4.$SYS/broker/clients/expired &超时的连接数
5.$SYS/broker/clients/disconnected 断开的连接数
6.$SYS/broker/clients/maximum &最大并发连接数
7.$SYS/broker/clients/total &所有连接数(活动的和非活动的)
8.$SYS/broker/heap/current size &当前用到的内存
9.$SYS/broker/heap/maximum size &用到的最大内存
$SYS/broker/load/connections/+
The moving average of the number of CONNECT packets received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of connections received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/bytes/received/+
The moving average of the number of bytes received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of bytes received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/bytes/sent/+
The moving average of the number of bytes sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of bytes sent in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/messages/received/+
The moving average of the number of all types of MQTT messages received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/messages/sent/+
The moving average of the number of all types of MQTT messages sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages send in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/dropped/+
The moving average of the number of publish messages dropped by the broker over different time intervals. This shows the rate at which durable clients that are disconnected are losing messages. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages dropped in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/received/+
The moving average of the number of publish messages received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of publish messages received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/sent/+
The moving average of the number of publish messages sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of publish messages sent in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/sockets/+
The moving average of the number of socket connections opened to the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of socket connections in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/messages/inflight
The number of messages with QoS>0 that are awaiting acknowledgments.
$SYS/broker/messages/received
The total number of messages of any type received since the broker started.
$SYS/broker/messages/sent
The total number of messages of any type sent since the broker started.
$SYS/broker/messages/stored
The number of messages currently held in the message store. This includes retained messages and messages queued for durable clients.
$SYS/broker/publish/messages/dropped
The total number of publish messages that have been dropped due to inflight/queuing limits. See the max_inflight_messages and max_queued_messages options in mosquitto.conf(5) for more information.
$SYS/broker/publish/messages/received
The total number of PUBLISH messages received since the broker started.
$SYS/broker/publish/messages/sent
The total number of PUBLISH messages sent since the broker started.
$SYS/broker/retained messages/count
The total number of retained messages active on the broker.
$SYS/broker/subscriptions/count
The total number of subscriptions active on the broker.
$SYS/broker/timestamp
The timestamp at which this particular build of the broker was made. Static.
$SYS/broker/uptime
The amount of time in seconds the broker has been online.
$SYS/broker/version
The version of the broker. Static.
Wildcard Topic Subscriptions
In addition to allowing clients to subscribe to specific topics, mosquitto also allows the use of two wildcards in subscriptions. + is the wildcard used to match a single level of hierarchy. For example, for a topic of "a/b/c/d", the following example subscriptions will match:
The following subscriptions will not match:
The second wildcard is # and is used to match all subsequent levels of hierarchy. With a topic of "a/b/c/d", the following example subscriptions will match:
The $SYS hierarchy does not match a subscription of "#". If you want to observe the entire $SYS hierarchy, subscribe to $SYS/#.
Note that the wildcards must be only ever used on their own, so a subscription of "a/b+/c" is not valid use of a wildcard. The # wildcard must only ever be used as the final character of a subscription.
Multiple brokers can be connected together with the bridging functionality. This is useful where it is desirable to share information between locations, but where not all of the information needs to be shared. An example could be where a number of users are running a broker to help record power usage and for a number of other reasons. The power usage could be shared through bridging all of the user brokers to a common broker, allowing the power usage of all users to be collected and compared. The other information would remain local to each broker.
For information on configuring bridges, see mosquitto.conf(5).
Upon receiving the SIGHUP signal, mosquitto will attempt to reload configuration file data, assuming that the -c argument was provided when mosquitto was started. Not all configuration parameters can be reloaded without restarting. See mosquitto.conf(5) for details.
Upon receiving the SIGUSR1 signal, mosquitto will write the persistence database to disk. This signal is only acted upon if persistence is enabled.
The SIGUSR2 signal causes mosquitto to print out the current subscription tree, along with information about where retained messages exist. This is intended as a testing feature only and may be removed at any time.
/etc/mosquitto/mosquitto.conf
Configuration file. See mosquitto.conf(5).
/var/lib/mosquitto/mosquitto.db
Persistent message data storage location if persist enabled.
/etc/hosts.allow, /etc/hosts.deny
阅读(5414) | 评论(1) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
Wildcard&Topic&Subscriptions請問可以跟我解釋這裡面再說什麼嗎???????????
请登录后评论。mosquitto 安装及测试 - 服务器 – java&seo博客
mosquitto 安装及测试
mosquitto 安装及测试
Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1。MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。值得一提的是mqtt提供三种不同质量的消息服务:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果下面我们进行linux环境中mosquito的安装:1.下载mosquito安装包,并安装mkdir&/usr/local/mq
cd&/usr/local/mq
wget&http://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
tar&-zxvf&mosquitto-1.4.9.tar.gz
cd&&mosquitto-1.4.9
make&install
mv&/etc/mosquitto/mosquitto.conf.example&/etc/mosquitto/mosquitto.conf2、mosquito安装报错解决:错误:./mosquitto_internal.h:27:27: error: openssl/ssl.h: No such file or directory解决方法:yum install openssl-devel错误:ares.h: No such file or directory解决方法:yum install c-ares-devel错误:g++:command not found解决方法:rpm&-qa&|&grep&&g++&&&&&&&&&&//先在系统中确认是否缺失相对应的包
yum&whatprovides&&*/g++&&&&&&//在确认系统未安装之后,查询可安装的相对应的功能的包
yum&install&gcc-c++-4.4.7-4.el6.x86_64&&根据提供的包,选择适合系统的进行安装错误:uuid/uuid.h: No such file or directory解决方法:yum install libuuid-devel错误:Error: Invalid user 'mosquitto'.解决方法:adduser mosquitto错误:mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory解决方法:sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.sosquitto.conf3、启动:mosquitto&-c&/etc/mosquitto/mosquitto.conf启动参数介绍:-c, --config-file 从文件中加载配置文件-d, --daemon 后台方式启动服务-p, --port 修改监听端口,默认是1883Listen on the port specified instead of the default 1883. This acts in addition to the port setting in the config file. May be specified multiple times to open multiple sockets listening on different ports. This socket will be bound to all network interfaces.-v, --verbose 使用详细日志记录Use verbose logging. This is equivalent to setting log_type to all in the configuration file. This overrides and logging options given in the configuration file.4、测试:运行订阅程序mosquitto_sub:mosquitto_sub&-t&mqtt开启另一个终端窗口,运行发布程序mosquitto_pub:指定消息推送的主题,发布端用户名和消息:mosquitto_pub -t 主题 -i 发布端 -h 主机 -m 你好 *注意:如果消息中间有空格则消息要用引号括起来。mosquitto_pub&-h&localhost&-t&test_topic&-m&&hello&world.&5、配置文件说明:#&=================================================================
#&General&configuration
#&=================================================================
#&客户端心跳的间隔时间
#retry_interval&20
#&系统状态的刷新时间
#sys_interval&10
#&系统资源的回收时间,0表示尽快处理
#store_clean_interval&10
#&服务进程的PID
#pid_file&/var/run/mosquitto.pid
#&服务进程的系统用户
#user&mosquitto
#&客户端心跳消息的最大并发数
#max_inflight_messages&10
#&客户端心跳消息缓存队列
#max_queued_messages&100
#&用于设置客户端长连接的过期时间,默认永不过期
#persistent_client_expiration
#&=================================================================
#&Default&listener
#&=================================================================
#&服务绑定的IP地址
#bind_address
#&服务绑定的端口号
#port&1883
#&允许的最大连接数,-1表示没有限制
#max_connections&-1
#&cafile:CA证书文件
#&capath:CA证书目录
#&certfile:PEM证书文件
#&keyfile:PEM密钥文件
#&必须提供证书以保证数据安全性
#require_certificate&false
#&若require_certificate值为true,use_identity_as_username也必须为true
#use_identity_as_username&false
#&启用PSK(Pre-shared-key)支持
#&SSL/TSL加密算法,可以使用“openssl&ciphers”命令获取
#&as&the&output&of&that&command.
#&=================================================================
#&Persistence
#&=================================================================
#&消息自动保存的间隔时间
#autosave_interval&1800
#&消息自动保存功能的开关
#autosave_on_changes&false
#&持久化功能的开关
persistence&true
#&持久化DB文件
#persistence_file&mosquitto.db
#&持久化DB文件目录
#persistence_location&/var/lib/mosquitto/
#&=================================================================
#&=================================================================
#&4种日志模式:stdout、stderr、syslog、topic
#&none&则表示不记日志,此配置可以提升些许性能
log_dest&none
#&选择日志的级别(可设置多项)
#log_type&error
#log_type&warning
#log_type&notice
#log_type&information
#&是否记录客户端连接信息
#connection_messages&true
#&是否记录日志时间
#log_timestamp&true
#&=================================================================
#&Security
#&=================================================================
#&客户端ID的前缀限制,可用于保证安全性
#clientid_prefixes
#&允许匿名用户
#allow_anonymous&true
#&用户/密码文件,默认格式:username:password
#password_file
#&PSK格式密码文件,默认格式:identity:key
#&pattern&write&sensor/%u/data
#&ACL权限配置,常用语法如下:
#&用户限制:user&&username&
#&话题限制:topic&[read|write]&&topic&
#&正则限制:pattern&write&sensor/%u/data
#&=================================================================
#&=================================================================
#&允许服务之间使用“桥接”模式(可用于分布式部署)
#connection&&name&
#address&&host&[:&port&]
#topic&&topic&&[[[out&|&in&|&both]&qos-level]&local-prefix&remote-prefix]
#&设置桥接的客户端ID
#&桥接断开时,是否清除远程服务器中的消息
#cleansession&false
#&是否发布桥接的状态信息
#notifications&true
#&设置桥接模式下,消息将会发布到的话题地址
#&$SYS/broker/connection/&clientid&/state
#notification_topic
#&设置桥接的keepalive数值
#keepalive_interval&60
#&桥接模式,目前有三种:automatic、lazy、once
#start_type&automatic
#&桥接模式automatic的超时时间
#restart_timeout&30
#&桥接模式lazy的超时时间
#idle_timeout&60
#&桥接客户端的用户名
#&桥接客户端的密码
#&bridge_cafile:桥接客户端的CA证书文件
#&bridge_capath:桥接客户端的CA证书目录
#&bridge_certfile:桥接客户端的PEM证书文件
#&bridge_keyfile:桥接客户端的PEM密钥文件
#bridge_cafile
#bridge_capath
#bridge_certfile
#bridge_keyfile
加载更多评论[移动] Mosquitto简要教程(安装/使用/测试)
我的图书馆
[移动] Mosquitto简要教程(安装/使用/测试)
&上篇文章《》中,我们给大家介绍了,如何在移动领域使用灵巧的消息传输协议MQTT来完成消息推送,最后也提到了开源项目Mosquitto。实际上,Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。本文的主旨在于记录Mosquitto服务的安装和使用,以备日后查阅。1、获取&安装Mosquitto提供了Windows、Linux以及qnx系统的版本,安装文件可从地址中获取(建议使用最新的1.1.x版本)。Windows系统下的安装过程非常简单,我们甚至可以把Mosquitto直接安装成为系统服务;但是,在实际应用中,我们更倾向于使用Linux系统的服务器,接下来我们就将重点介绍Linux版Mosquitto的安装方法。在Linux系统上安装Mosquitto,本人建议大家使用源码安装模式,最新的源码可从地址中获取。解压之后,我们可以在源码目录里面找到主要的配置文件config.mk,其中包含了所有Mosquitto的安装选项,详细的参数说明如下:[html] #&是否支持tcpd/libwrap功能.&&#WITH_WRAP:=yes&&&&#&是否开启SSL/TLS支持&&#WITH_TLS:=yes&&&&#&是否开启TLS/PSK支持&&#WITH_TLS_PSK:=yes&&&&#&Comment&out&to&disable&client&client&threading&support.&&#WITH_THREADING:=yes&&&&#&是否使用严格的协议版本(老版本兼容会有点问题)&&#WITH_STRICT_PROTOCOL:=yes&&&&#&是否开启桥接模式&&#WITH_BRIDGE:=yes&&&&#&是否开启持久化功能&&#WITH_PERSISTENCE:=yes&&&&#&是否监控运行状态&&#WITH_MEMORY_TRACKING:=yes&&这里需要注意的是,默认情况下Mosquitto的安装需要OpenSSL的支持;如果不需要SSL,则需要关闭config.mk里面的某些与SSL功能有关的选项(WITH_TLS、WITH_TLS_PSK)。接着,就是运行make install进行安装,完成之后会在系统命令行里发现mosquitto、mosquitto_passwd、mosquitto_pub和mosquitto_sub四个工具(截图如下),分别用于启动代理、管理密码、发布消息和订阅消息。2、配置&运行安装完成之后,所有配置文件会被放置于/etc/mosquitto/目录下,其中最重要的就是Mosquitto的配置文件,即mosquitto.conf,以下是详细的配置参数说明。[html] #&=================================================================&&#&General&configuration&&#&=================================================================&&&&#&客户端心跳的间隔时间&&#retry_interval&20&&&&#&系统状态的刷新时间&&#sys_interval&10&&&&#&系统资源的回收时间,0表示尽快处理&&#store_clean_interval&10&&&&#&服务进程的PID&&#pid_file&/var/run/mosquitto.pid&&&&#&服务进程的系统用户&&#user&mosquitto&&&&#&客户端心跳消息的最大并发数&&#max_inflight_messages&10&&&&#&客户端心跳消息缓存队列&&#max_queued_messages&100&&&&#&用于设置客户端长连接的过期时间,默认永不过期&&#persistent_client_expiration&&&&#&=================================================================&&#&Default&listener&&#&=================================================================&&&&#&服务绑定的IP地址&&#bind_address&&&&#&服务绑定的端口号&&#port&1883&&&&#&允许的最大连接数,-1表示没有限制&&#max_connections&-1&&&&#&cafile:CA证书文件&&#&capath:CA证书目录&&#&certfile:PEM证书文件&&#&keyfile:PEM密钥文件&&#cafile&&#capath&&#certfile&&#keyfile&&&&#&必须提供证书以保证数据安全性&&#require_certificate&false&&&&#&若require_certificate值为true,use_identity_as_username也必须为true&&#use_identity_as_username&false&&&&#&启用PSK(Pre-shared-key)支持&&#psk_hint&&&&#&SSL/TSL加密算法,可以使用“openssl&ciphers”命令获取&&#&as&the&output&of&that&command.&&#ciphers&&&&#&=================================================================&&#&Persistence&&#&=================================================================&&&&#&消息自动保存的间隔时间&&#autosave_interval&1800&&&&#&消息自动保存功能的开关&&#autosave_on_changes&false&&&&#&持久化功能的开关&&persistence&true&&&&#&持久化DB文件&&#persistence_file&mosquitto.db&&&&#&持久化DB文件目录&&#persistence_location&/var/lib/mosquitto/&&&&#&=================================================================&&#&Logging&&#&=================================================================&&&&#&4种日志模式:stdout、stderr、syslog、topic&&#&none&则表示不记日志,此配置可以提升些许性能&&log_dest&none&&&&#&选择日志的级别(可设置多项)&&#log_type&error&&#log_type&warning&&#log_type&notice&&#log_type&information&&&&#&是否记录客户端连接信息&&#connection_messages&true&&&&#&是否记录日志时间&&#log_timestamp&true&&&&#&=================================================================&&#&Security&&#&=================================================================&&&&#&客户端ID的前缀限制,可用于保证安全性&&#clientid_prefixes&&&&#&允许匿名用户&&#allow_anonymous&true&&&&#&用户/密码文件,默认格式:username:password&&#password_file&&&&#&PSK格式密码文件,默认格式:identity:key&&#psk_file&&&&#&pattern&write&sensor/%u/data&&#&ACL权限配置,常用语法如下:&&#&用户限制:user&&username&&&#&话题限制:topic&[read|write]&&topic&&&#&正则限制:pattern&write&sensor/%u/data&&#acl_file&&&&#&=================================================================&&#&Bridges&&#&=================================================================&&&&#&允许服务之间使用“桥接”模式(可用于分布式部署)&&#connection&&name&&&#address&&host&[:&port&]&&#topic&&topic&&[[[out&|&in&|&both]&qos-level]&local-prefix&remote-prefix]&&&&#&设置桥接的客户端ID&&#clientid&&&&#&桥接断开时,是否清除远程服务器中的消息&&#cleansession&false&&&&#&是否发布桥接的状态信息&&#notifications&true&&&&#&设置桥接模式下,消息将会发布到的话题地址&&#&$SYS/broker/connection/&clientid&/state&&#notification_topic&&&&#&设置桥接的keepalive数值&&#keepalive_interval&60&&&&#&桥接模式,目前有三种:automatic、lazy、once&&#start_type&automatic&&&&#&桥接模式automatic的超时时间&&#restart_timeout&30&&&&#&桥接模式lazy的超时时间&&#idle_timeout&60&&&&#&桥接客户端的用户名&&#username&&&&#&桥接客户端的密码&&#password&&&&#&bridge_cafile:桥接客户端的CA证书文件&&#&bridge_capath:桥接客户端的CA证书目录&&#&bridge_certfile:桥接客户端的PEM证书文件&&#&bridge_keyfile:桥接客户端的PEM密钥文件&&#bridge_cafile&&#bridge_capath&&#bridge_certfile&&#bridge_keyfile&&&&#&自己的配置可以放到以下目录中&&include_dir&/etc/mosquitto/conf.d&&最后,启动Mosquitto服务很简单,直接运行命令行“mosquitto -c /etc/mosquitto/mosquitto.conf -d”即可开启服务。接下来,就让我们尽情体验Mosquitto的强大功能吧!当然,有了Mosquitto,我们就可以安心地抛弃“简陋”的rsmb了,有兴趣的话,大家还可以尝试把Mosquitto服务运用到上一篇的Android推送服务中。另外,Mosquitto是个异步IO框架,经测试可以轻松处理20000个以上的客户端连接。当然,实际的最大承载量还和业务的复杂度还有比较大的关系。下图是本人在一台普通Linux机器上进行的压力测试结果,大家可以参考。友情提醒:测试的时候不要忘记调整系统的最大连接数和栈大小,比如:Linux上可用ulimit -n20000 -s512命令设置你需要的系统参数。
TA的最新馆藏[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 怎么做性能测试 的文章

 

随机推荐