tsung
Posted ilinunix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tsung相关的知识,希望对你有一定的参考价值。
1.简介
http://tsung.erlang-projects.org/user_manual/index.html
tsung 是一个分布式的多协议负载测试工具;
支持 HTTP, WebDAV, SOAP, PostgreSQL, mysql, LDAP and Jabber/XMPP 协议/服务器测试;
1.安装
# EPEL 源
$ sudo yum install tsung
2.命令
$ tsung <options> start|stop|debug|status|view
-f <file> 默认配置为 ~/.tsung/tsung.xml,可以手动指定,- 表示从标准输入中读取;
-l <logdir> 测试结果存放目录,默认为 ~/.tsung/log/YYYYMMDD-HHMM 目录;
-i <id> 设置 controller 的 ID,默认为空;
-r <command> 设置远程连接的方式,默认为 SSH(需要你提前配置好密钥认证);
-n 不开启 web GUI,默认开启,端口为 8091;
-k 测试完成后,仍然保持 web GUI 和 controller 在线;
-s enable erlang smp on client nodes
-p <max> set maximum erlang processes per vm (default is 250000)
-X <dir> add additional erlang load paths (multiple -X arguments allowed)
-m <file> write monitoring output on this file (default is tsung.log)
(use - for standard output)
-F use long names (FQDN) for erlang nodes
-L <lifetime> SSL session lifetime (600sec by default)
-w <delay> warmup delay (default is 1 sec)
-x <tags> list of requests tag to be excluded from the run (separated by comma)
-t <min> erlang inet listening TCP port min (default: 64000)
-T <max> erlang inet listening TCP port max (default: 65500)
3.HTTP配置文件
示例文件:/usr/share/doc/tsung/examples/http_simple.xml
————————————————————————————————————————————————————————————————————————————————————————————
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung dumptraffic="false" loglevel="debug" version="1.0">
<!-- 测试端设置 -->
<!-- weight="1":当有多个客户端时,指定各自的权重,可以为整数或者浮点数;
maxusers="800":该客户端最多拥有的用户数,默认为 800,可以设置大些如 ?30000;
一般来说一个进程默认能使用 1024 个句柄,该值决定了生成 vm 的数量;
use_controller_vm="true":表示使用本程序作为对应主机的客户端;
如果存在多个客户端,则其他主机默认使用 SSH 来进行调用通信;
-->
<clients>
<client host="domob-207.domob-inc.cn" weight="3" maxusers="800">
<!-- 当一个主机有多个IP时,可以轮训使用不同的IP去访问服务器 -->
<ip value="10.9.195.12"></ip>
<ip value="10.9.195.13"></ip>
</client>
<client host="localhost" use_controller_vm="true" weight="1" use_controller_vm="true"/>
</clients>
<!-- 被测试端设置 -->
<!-- weight="4":在有多个 server 时,指定各个的权重,可以为整数或者浮点数;
type="tcp":设置测试的服务类型,可以为 tcp, ssl, udp, ?websocket;
-->
<servers>
<server host="vhost1.domob-inc.cn" port="80" type="tcp" ?weight="4"></server>
<server host="vhost2.domob-inc.cn" port="80" type="tcp" ?weight="1"></server>
</servers>
<!-- 被监控端 -->
<!-- 通常和被测试端的主机相同,会检测 cpu, network, memory;
type="snmp":默认检测方式为 erlang(通信方式见 client),可选的有 snmp;
-->
<monitoring>
<monitor host="myserver" type="snmp"></monitor>
</monitoring>
<!-- full url with server name, this overrides the "server" config value -->
<request> <http url="/" method="GET" version="1.1"></http> </request>
<request> <http url="/images/accueil1.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>
<request> <http url="/images/accueil2.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>
<request> <http url="/images/accueil3.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>
<thinktime value="20" random="true"></thinktime>
<request> <http url="/index.en.html" method="GET" version="1.1" ></http> </request>
- tsung
dumptraffic="false" loglevel="notice" version="1.0" - clients
- servers
- monitoring
- load
- options
- sessions
由多个 session 区块组成,每个 session 区块可以由 tsung-recorder 命令通过设置代理来自动生成;
注意:此时如果 URL 是 https 协议,则请用 http://- 来代替 https://;
It can simulates thousands of users on a single CPU (Note: a simulated user is not always active: it can be idle during a thinktime period)
以上是关于tsung的主要内容,如果未能解决你的问题,请参考以下文章