- 浏览: 286407 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
langzhe:
Mac 下用 sudo cpan Template,依然不能 ...
第一次 使用 tsung -
langzhe:
<server host='127.0.0.1' por ...
ejabberd/tsung 做压力测试万万不可忽视测试工具问题 -
dlliwei:
jabberd_register.xml 内容如下(我的ser ...
ejabberd/tsung 做压力测试万万不可忽视测试工具问题 -
dlliwei:
你好,我安装tsung后执行命令: tsung -f jabb ...
ejabberd/tsung 做压力测试万万不可忽视测试工具问题 -
bit1129:
这么复杂的一个东西,一句话说完了?
keepalive
注册 用户 超过 130000 178864 设备 156584 1. 测试关于“汉字”更新数据 后台抛出 =INFO REPORT==== 2010-10-25 18:07:47 === D(<0.1906.0>:ejabberd_odbc:416) : MySQL, Send query ["UPDATE vendors SET vendorname='",[20013],"' WHERE vendorid='","37","';"]=INFO REPORT==== 2010-10-25 18:07:52 === D(<0.1906.0>:ejabberd_odbc:416) : MySQL, Send query "rollback;"解决方法: [20013] 是为调用了xmerl:xmerl_scan:string/2 返回的,只好从编码上入手,但 很不能理解 如果 下面参数 S 已经是UTF8 了在执行下面操作后 又进行了编码(为什么再次编码,此现象只出现在汉字上面)。所以只好在针对xmerl_scan:string/2的返回值进行编码,而不能写成通用的方法。 如[233,223,222] 执行下面操作后成了 [228,123,345,238,222,133](此数据是说明问题随便写的) > > + UTF8Binary = unicode:characters_to_binary(S, utf8, utf8), > > + UTF8Str = binary_to_list(UTF8Binary),
2.单个 虚拟机 测试( <client host="client-3.langzhelabdns.com" use_controller_vm="true" maxusers="60000"/> ) 解决方法:以下问题 修改ulimit -n 102400参数解决 INFO REPORT==== 1-Nov-2010::13:46:29 === ts_launcher:(5:<0.84.0>) Activate launcher (60000 users) in 10002 msec =INFO REPORT==== 1-Nov-2010::13:49:47 === ts_client:(3:<0.12537.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: etimedout =INFO REPORT==== 1-Nov-2010::13:49:47 === ts_client:(3:<0.12536.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: etimedout =INFO REPORT==== 1-Nov-2010::13:49:47 === ts_client:(3:<0.12535.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: etimedout 日志---: ts_client:(3:<0.6577.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: system_limit =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(3:<0.4203.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: system_limit =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(5:<0.4203.0>) Pending transactions: [{tr_device_register, {1288,578941, 906458}}], compute transaction time =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(3:<0.4378.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: system_limit =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(5:<0.4378.0>) Pending transactions: [{tr_device_register, {1288,578941, 906438}}], compute transaction time =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(3:<0.5622.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: system_limit =INFO REPORT==== 1-Nov-2010::10:35:44 === ts_client:(3:<0.4033.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: system_limit =INFO REPORT==== 1-Nov-2010::10:35:44 === Error: econnreset ts_client:(3:<0.32258.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: econnrefused =INFO REPORT==== 1-Nov-2010::10:41:03 === ts_client:(3:<0.27051.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: econnrefused =INFO REPORT==== 1-Nov-2010::10:41:03 === ts_client:(5:<0.27051.0>) Pending transactions: [{tr_user_register, {1288,579203, 9045}}], compute transaction time =INFO REPORT==== 1-Nov-2010::10:41:03 === ts_client:(3:<0.31393.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: econnrefused 3. ------------------------------------------------ 根据上面出现的情况 调整ulimit参数后,tsung日志出现 etimedout (ssh验证 tsung监听 )会出现此问题 参见 http://www.iteye.com/topic/573238部分解释 =INFO REPORT==== 1-Nov-2010::13:49:47 === ts_client:(3:<0.12532.0>) (Re)connect from 0.0.0.0 to testrsa.langzhelabdns.com:5280, Error: etimedout 解决方法 配置ssh 信任 4. ----死锁 ------------------ -------------代码中出现了for update引起 去掉就OK了-- --------------- =INFO REPORT==== 2010-11-01 10:22:06 === 15403 D(<0.517.0>:ejabberd_http:323) : ["user","register"] matches ["user", 15404 "register"] 15405 15406 =INFO REPORT==== 2010-11-01 10:22:06 === 15407 D(<0.259.0>:ejabberd_odbc:420) : MySQL, Send query 15408 ["SELECT vendorid FROM vendors WHERE vendorname = '","test","' FOR UPDATE;"] 15409 15410 15411 =INFO REPORT==== 2010-11-01 10:22:06 === 15412 D(<0.247.0>:ejabberd_odbc:420) : MySQL, Send query 15413 ["SELECT vendorid FROM vendors WHERE vendorname = '","test","' FOR UPDATE;"] 15414 15415 15416 =INFO REPORT==== 2010-11-01 10:22:06 === 15417 D(<0.437.0>:mod_langzhe_device_register:71) : transactionResult = {aborted, 15418 {{badmatch, 15419 {error, 15420 "#40001Deadlock found when trying to get lock; try restarting transaction"}}, 15421 [{mod_langzhe_basic, 15422 add_device_type, 15423 2}, 15424 {mod_langzhe_device_register, 15425 '-process/2-fun-0-', 15426 7}, 15427 {ejabberd_odbc, 15428 outer_transaction, 15429 3}, 15430 {ejabberd_odbc, 15431 session_established, 15432 3}, 15433 {p1_fsm, 15434 handle_msg, 15435 10}, 5.----------- 注册用户 40080- ------------- Mon Nov 1 16:05:19 2010 Slogan: eheap_alloc: Cannot allocate 729810240 bytes of memory (of type "heap"). System version: Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:true] Compiled: Fri Oct 15 14:49:18 2010 Atoms: 15554 =memory total: 1802636424 processes: 1646297908 processes_used: 1645947788 system: 156338516 atom: 710173 atom_used: 696317 binary: 235232 code: 6574357 ets: 5148228 =hash_table:atom_tab ======================= Mon Nov 1 15:52:53 2010 Slogan: eheap_alloc: Cannot allocate 912262800 bytes of memory (of type "heap"). System version: Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:true] Compiled: Fri Oct 15 14:49:18 2010 Atoms: 15554 =memory total: 2105409384 processes: 2059069028 processes_used: 2058770452 system: 46340356 atom: 710173 atom_used: 696317 binary: 207192 code: 6574357 ets: 5148596 =hash_table:atom_tab size: 9643 used: 7694 objs: 15554 depth: 8 ----------------------------------------- =erl_crash_dump:0.1注册用户数 32874 600s 300/s 服务器抛出 错误时 物理内存 被占用81% (2G内存) 912262800/1024/1024 > 0.19*2*1024(870>389 显然 是内存不足) Mon Nov 1 16:30:25 2010 Slogan: eheap_alloc: Cannot allocate 912262800 bytes of memory (of type "heap"). System version: Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:true] Compiled: Fri Oct 15 14:49:18 2010 Atoms: 15554 =memory total: 2238866320 processes: 2077803940 processes_used: 2077676852 system: 161062380 atom: 710173 atom_used: 696317 binary: 222712 code: 6574357 ets: 5148340 =hash_table:atom_tab size: 9643 used: 7694 objs: 15554 depth: 8 解决方法 分析后发现是日志级别引起,设为info就OK 六、-----------FSM limit reached (<0.255.0>): {max_queue,1003}-------------------------------------------- =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.27300.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.30873>} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.384.0>:ejabberd_listener:234) : (#Port<0.30874>) Accepted connection {{192,168,0,223},40244} -> {{192,168,0,223},5280} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.27301.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.30874>} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.384.0>:ejabberd_listener:234) : (#Port<0.30875>) Accepted connection {{192,168,0,223},54723} -> {{192,168,0,223},5280} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.27302.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.30875>} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.384.0>:ejabberd_listener:234) : (#Port<0.30876>) Accepted connection {{192,168,0,223},47419} -> {{192,168,0,223},5280} =ERROR REPORT==== 2010-11-01 20:30:30 === FSM limit reached (<0.255.0>): {max_queue,1003} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.257.0>:ejabberd_odbc:526) : Closing connection #Port<0.3650>: ok =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.27303.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.30876>} =INFO REPORT==== 2010-11-01 20:30:30 === I(<0.384.0>:ejabberd_listener:234) : (#Port<0.30877>) Accepted connection {{192,168,0,223},60273} -> {{192,168,0,223},5280} =INFO REPORT==== 2010-11-01 20:30:33 === I(<0.27307.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.30877>} =INFO REPORT==== 2010-11-01 20:30:34 === I(<0.384.0>:ejabberd_listener:234) : (#Port<0.30878>) Accepted connectio 解决方法 参见 : http://langzhe.iteye.com/admin/blogs/801942 七、------------------------------------- =INFO REPORT==== 2010-11-02 08:57:24 === I(<0.384.0>:ejabberd_listener:246) : (#Port<0.4265>) Failed TCP accept: emfile 解决方法: vi /etc/ejabberd/ejabberdctl.cfg 修改 ERL_PROCESSES=250000 ERL_MAX_PORTS=320000 参数和ulimit -n 参数 enfile问题参考 http://www.netadmintools.com/art295.html 八、------------------------------------- 方法1 修改maxusers参数<client host="client-3.langzhelabdns.com" use_controller_vm="true" maxusers="6000000"/> 方法2 修改use_controller_vm参数 <client host="client-3.langzhelabdns.com" use_controller_vm="faluse"/> "Maximum number of concurrent users in a single VM reached and 'use_controller_vm' is true, can't start new beam !!! Check 'maxusers' value in <client> configuration.~n" 九、-----------ID 越过---没有生成 vendordid 为64的记录---------------------- select * from vendors where vendorid like'6_' order by vendorid; +----------+------------+ | vendorid | vendorname | +----------+------------+ | 60 | test160 | | 61 | test161 | | 62 | test162 | | 63 | test163 | | 65 | test164 | | 66 | test165 | | 67 | test166 | | 68 | test167 | | 69 | test168 | +----------+------------+ 157 | test1157 | | 159 | test1158 | | 160 | test1159 ======下面两个问题还没有解决============ 十一、-------------------------- =INFO REPORT==== 2010-11-03 17:42:19 === I(<0.20211.0>:ejabberd_http:137) : started: {gen_tcp,#Port<0.23590>} =ERROR REPORT==== 2010-11-03 17:42:19 === ** State machine <0.235.0> terminating ** Last message in was {'$gen_sync_event', {<0.7013.0>,#Ref<0.0.0.125463>}, {sql_cmd, {sql_query, ["SELECT keyt FROM langzhe_vendor_key WHERE vendor = '", "test","' and version = '","1","';"]}}} ** When State == session_established ** Data == {state,<0.236.0>,mysql,30000,"testrsa.langzhelabdns.com", 1000000000000, {0,{[],[]}}} ** Reason for termination = ** timeout ==> ejabberd.log <== {sql_cmd, {sql_query, ["SELECT keyt FROM langzhe_vendor_key WHERE vendor = '", "test","' and version = '","1","';"]}}} ** When State == session_established ** Data == {state,<0.236.0>,mysql,30000,"testrsa.langzhelabdns.com", 1000000000000, {0,{[],[]}}} ** Reason for termination = ** timeout 十二、---------------------mysql connection failed timeout--------------- 5 =INFO REPORT==== 2010-11-05 16:23:21 === 6 I(<0.247.0>:ejabberd_odbc:212) : mysql connection failed: 7 ** Reason: "timed out" 8 ** Retry after: 30 seconds 9 10 =ERROR REPORT==== 2010-11-05 16:23:21 === 11 E(<0.246.0>:ejabberd_odbc:528) : mysql_conn: Failed connecting to "192.168.0.223":3306 : {error, 12 "timeout"} 13 14 =INFO REPORT==== 2010-11-05 16:23:21 === 15 I(<0.244.0>:ejabberd_odbc:212) : mysql connection failed: 16 ** Reason: "timed out" 17 ** Retry after: 30 seconds 18 19 =ERROR REPORT==== 2010-11-05 16:23:21 === 20 W(<0.244.0>:ejabberd_odbc:281) : unexpected info in connecting: {mysql_conn, 21 <0.246.0>, 22 {error, 23 connect_failed}} 24 25 =ERROR REPORT==== 2010-11-05 16:23:21 === 26 E(<0.243.0>:ejabberd_odbc:528) : mysql_conn: Failed connecting to "192.168.0.223":3306 : {error, 27 "timeout"} 28 29 =INFO REPORT==== 2010-11-05 16:23:21 === 30 I(<0.241.0>:ejabberd_odbc:212) : mysql connection failed: 31 ** Reason: "timed out" 32 ** Retry after: 30 seconds 33 34 =ERROR REPORT==== 2010-11-05 16:23:21 === 35 W(<0.241.0>:ejabberd_odbc:281) : unexpected info in connecting: {mysql_conn, 36 <0.243.0>, 37 {error,
发表评论
-
ejabberd/tsung 做压力测试万万不可忽视测试工具问题
2011-09-22 18:03 3575这两天 用tsung测试ejabberd服务器。 2万用户在 ... -
error_no_online presence:initiali
2011-09-20 17:57 956这两天用tsung 测试ejabberd。我发送的是onlin ... -
docbook2man tsung.1.sgml >/dev/null 2>&1
2011-09-01 11:07 13692011-09-01 今天又遇到此问题了 这 ... -
tsung-recorder 录制压力测试脚本
2011-01-13 14:25 3817tsung-recorder 录制压力测试脚本 ... -
tsung Advanced setup -client配置虚拟地址
2010-12-02 10:47 1604tsung.xml配置样例<clients> ... -
tsung测试http 动态生成用户
2010-09-28 11:11 3866tsung.xml request 部分 su ... -
linux下远程启动erlang服务总是自动关闭(整理来自erlang-china@googlegroups.com)
2010-07-12 13:40 3541yanglin提出: 连接到服务器运行如下: /us ... -
第一次 使用 tsung
2010-07-09 17:09 5795网上搜了一下 发现http://erlang-china.or ...
相关推荐
MQTT压力测试之Tsung的使用 MQTT压力测试之Tsung的使用
tsung是用erlang开发的一款简单易用的压力测试工具,目前仅支持linux各版本系统安装,有tar.gz和deb两种安装文件, 目前我们测试用的是CentOS或RedHat两种操作系统,因此选择tar.gz安装文件,总的来说tsung工具有...
这个插件使得Tsung可以模拟客户端与WebSocket服务器的交互,包括建立连接、发送文本或二进制数据、关闭连接等操作。这有助于评估WebSocket服务在高并发下的性能表现,发现潜在的瓶颈和问题。 **`websocket.xml`配置...
Tsung 是一个强大的开源负载和性能测试工具,适用于多种协议...总之,Tsung提供了一个强大且灵活的平台来测试Openfire这样的XMPP服务器的性能和压力。通过定制XML配置文件,可以模拟各种用户行为,帮助优化服务端性能。
tsung高并发测试工具搭建(自己亲测,详细的一逼),改文档是自己一步一步摸索出来的,主要是安装tsung整个过程很详细,搭过的人,知道tsung的搭建依赖很恶心,不是一时半会能搞出来的
- **创建工作目录**: TSUNG会在用户的主目录下创建一个隐藏的工作目录`.tsung`。 - **配置文件**: `tsung.xml`是配置测试场景的主要文件,需要根据实际需求进行编辑或替换。 #### 五、示例:HTTP压力测试 - **配置...
1. **创建Namespace**:使用`kubectl create namespace tsung`命令创建一个名为`tsung`的命名空间。 2. **部署Tsung Slave**:使用StatefulSet而非Deployment来部署Tsung Slave,因为后者可以为每个Pod分配独立的...
Tsung是一款开源的压力测试工具,能够模拟多个用户对各种服务器应用进行压力测试。它使用Erlang语言编写,支持多种协议,如HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP和Jabber/XMPP。在实际使用中,Tsung可以模拟...
4. **结束阶段**:测试完成后,使用 `tsung stop` 命令停止测试,Tsung 会生成详细的测试报告,分析结果可以帮助我们了解系统在压力下的表现。 对于初学者,理解 Tsung 的基本概念和配置语法是至关重要的。同时,...
Tsung是一个功能强大的、基于Erlang编程语言开发的开源负载测试工具。它设计用于模拟大量用户并发访问,以测试网络服务和系统的性能及稳定性。Tsung不仅支持HTTP、HTTPS、SOAP、XML-RPC等Web应用协议,还支持FTP、 ...
压力测试主要包括以下几个方面: 1. **并发连接测试**:模拟大量客户端同时发起连接请求,检查服务器能否正确处理这些请求,不出现连接超时或拒绝服务的情况。这涉及到服务器的并发连接数限制、线程池管理以及内存...
总的来说,Tsung-1.5.1是一个强大且灵活的压力测试工具,尤其适用于Openfire等即时通讯系统的性能评估。它提供了丰富的自定义选项,可以帮助开发者和运维团队全面了解系统的性能表现,确保在高负载情况下仍能保持...
性能测试是确保互联网产品和服务质量的关键环节,主要涵盖压力测试、负载测试和性能测试。这些测试类型各有侧重,压力测试关注系统的极限承受能力,寻找性能瓶颈;负载测试则是在最大预期工作量下测试系统的稳定性和...
tsung的测试脚本,包含发送单人消息,群组消息,获取花名册等
Openfire 3.9.3 Load Test Tsung配置xml,10万用户下集群测试的Tsung压力测试工具的jabber_cluster.xml,session 5分钟
tsung:性能测试工具
而Tsung基于Erlang,适用于分布式压力测试。 在实际测试中,常见的测试类型包括并发测试(评估系统在多用户并发请求下的承载能力)、稳定性测试(长时间施压以检测系统的稳定性)、负载测试(逐渐增加压力直至性能...
利用Tsung对Tigase进行负载测试可以帮助评估其性能极限,并识别潜在的问题区域。 **测试步骤**: 1. **准备环境**:在Ubuntu系统上安装并配置Tsung。 2. **修改系统限制**:通过`ulimit -n 20480`增加文件描述符的...
**Tsung 1.3.3:Linux环境下的强大压力测试工具** Tsung是一个高度可扩展、分布式的多协议负载和性能测试工具,专为模拟大量用户并发访问系统而设计。它支持多种网络协议,包括HTTP、HTTPS、FTP、TCP、UDP、jabber/...