[优]理解tsung.xml配置文件


授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 理解 tsung.xml 配置文件 by:授客 QQ:1033553122 1. 文件结构 默认编码:utf-8.也可以使用不同的编码,如下,设置编码为 ISO-8859-1 场景包含在 tsung 元素标签内 …(场景) 如果添加属性 dumptraffic="true",那么所有的通信记录都会被记录到文件,即如下 注 意: 这会极 大的 减慢 tsung,所以必须小心。对于调试很有帮助,可以用属性 dumptraffic="light",仅 dump 首个 44 字节 从 1.4.0 开始,每个协议有个特定的记录,使用 dumptraffic="protocol".目前仅支持 HTTP 协议:记录所有请求到一个 CSV 文件,文件包含以下内容: #date;pid;id;http method; host; URL; HTTP status; size; duration; transaction; match;error;tag 日志级别(loglevel)也会对性能有极大的影响:为了高负载,推荐使用 warning. 可选日志级别如下: 1. emergency 2. critical 3. error 4. warning 5. notice (default) 6. info 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 7. debug 如果需要很详细的日志记录,使用 debug 选项重新编 tsung 并设置日志级别为 debug 2. 客户端和服务器 1) 基本设置 对于非分布式负载,可以使用类似以下基本设置 servers 为集群的入口点。可以添加多个服务器。缺省的,每个服务器有一个带值为 1 的 weight 属性,每个会话都根据这个 weight 随机选择一个服务器。可以按如下方 式为每个服务器设置一个 weight 值(weight 可以是整数或浮点数) 在 1.5.0 以前的版本,不支持 weight 属性。 type 属性值可以是 tcp,ssl,udp(ipv6:tcp6,ssl6,udp6,仅 1.4.2 或更新版本中可 用),或 websocket(仅 1.5.0 或更新版本中可用) 2) 高级设置 可使用多个虚拟 IP 来模拟更多机器。当负载平衡使用客户端 IP 在集群服务器中来分 发通信量时是很有帮助的。在 1.1.1 版本中,IP 不再是强制的,如果不指定,将使用 缺省 iP 在 1.4.0 版本中,可以使用来扫描指定网卡接口 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 如 eth0 上的所有 IP。 上例中,tsung 集群中使用了另一个机器,带有更高的 weight,2 个 cpu。将使用两 个 Erlang 虚拟机重复利用给定 CPU。 注意:即使一个 Erlang 虚拟机可以处理多个 CPU(erlang SMP),基线显示对客户端 来说,每个虚拟机使用一个 CPU(使用时禁用 SMP)更有效率。仅 controller 节点使 用 SMP erlang,cpu 属性值应该等于节点的核数(number of cores).如果选择用 erlang SMP, 带-s 选项开启 tsung(且不要在配置文件中设置 cpu) 默认的,统一在所有 CPU 上施加负载(缺省的,每个客户端一个 CPU)。weight 参数可 用于计算客户端机器的速度。例如,一台客户端的 weight 值为 1,另一台客户端 weight 值为 2,那么第二台客户端开启的用户数将是第一台真机的两倍。(比例将是 1/3 和 2/3)。例中,第二台客户机带 2 个 cpu,且 weight=3,相当于每个 cpu 的 weight 值 为 1.5。 maxusers 说明 maxusers 参数用于突破由单一进程打开的 socket 最大数限制(缺省的,任意 OS 上为 1024)和 select 系统调用可扩展性的不足。当用户数更限制更高时,将开启新的 erlang 虚拟机来处理新用户。默认的 maxusers 属性值为 800.现在,有了内核轮询 的允许,可以且应该为 maxusers 使用一个更大的值,比如 300000,且不会有性能损 失。但是不要忘记提搞 os 的 limit 值,可用 ulimit –n 注意:如果你正在使用 tsung,tsung 分发会话给 user。如果一个会话包含多个请求, user 将按顺序执行每个请求。 注意: 如果 tsung client cpu 内存都没压力,但是用户又上不去。修改/etc/sysctl.conf 文件,添加(修改) 如下内容 # vi /etc/sysctl.conf net.ipv4.tcp_rmem=4096 4096 16777216 net.ipv4.tcp_wmem=4096 4096 16777216 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max=65535000 修改后立马生效则需要执行: # sysctl –p 说明:可能 sysctl -p 会出现如下错误: error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key 解决方法: # modprobe bridge 按任务计划运行 tsung 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ tsung 可从一个批处理或任务计划中获取它自己的客户机节点列表。它目前可处理 PBS/torque, LSF 和 OAR.为了实现这个目的,需要设置 type 属性,例如: 如果需要由批处理任务给定的节点上扫描 ip,按如下方式使用 scan_intf: 3. 监视 tsung 可以使用几个同远程代理交互的后端监控远程服务器。这个是在节点 下配置的。可获得的统计数据为:CPU 活动,平均负载值和内存使用。 设置工作任务中 monitor 节点,如下 支持多种类型的远程代理,默认为 erlang 1) erlang 远程代理是由 tsung 开启的,使用 erlang 会后来接收服务器上的活动统计数据。例如, 以下是基于 erlang 代理定义的集群(含 6 台计算机)监控 注意:被监视的电脑需能通过网络访问,且允许 erlang 会话(最好是没防火墙),需要配置 SSH 或 rsh 以免密码进行会话连接。在所有相同节点必须使用相同版本的 erlang 如果不能在运程服务器上安装 erlang,你可以用其它可用代理。 在 1.5.1 版本中,erlang 模拟器包含一个选项,用于监控带有 mysqladmin mysql 数据 库,如下 可获得的状态:mysql 线程数和查询数 2) SNMP 如果选择 SNMP 监控,可设置 type 值为 snmp. 可混用 smnp 和 erlang.从 1.2.2 开始, 可以设定 SMNP 版本,SNMP version, community 和端口号. 它使用 net-snmp 中提供的 信息 Management Information Base (MIB) 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 注:默认版本是 v1,默认 community 为 public,默认端口号为 161 从 1.4.2 版本开始,可以自定义从 SNMP 服务器接收的对象标识( object identifiers ) 使用一个或多个 oid 元素: type 可以是 sample, counter 或 sum,且可选的,你可定义一函数为 eval attribute 的值。 3) Munin 1.3.1 中 Tsung 可从 nunin-node 代理接收数据 (see http://munin-monitoring.org/wiki/munin-node). type 值必须设置为 munin, 例 如: 4. 定义负载过程 1) 随机生成用户 通过定义多个 arrivalphase 来定义负载过程 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 按例中的设置,开始测试的前 10 分钟,每 2 秒中创建一个新用户,然后下一个 10 分钟, 每 1 秒中创建一个用户,最后 10 分钟,每秒创建 10 个用户。当所有的用户都结束了它们 的会后时,将结束测试。 也可以使用 arrivalrate 替代 intervarrival(个人感觉更方便,推荐).如下,每秒创建 10 个用户 可以通过 maxnumber 属性限制每个 phase 开启的用户数 例中,在第一个 phase 中,仅创建 100 个用户,第二个中 200 个。 在 load 标签中使用 loop 属性可多次执行整个语句,如下 ... loop="2" 意味着语句将循环 2 次,所以整个负载将执行 3 次--3 次执行 sessions 中的内 容) 根据 HTTP requests/seconds 的负载将依赖在一个会话中的平均请求数 (如果每个会话 平均 100 个请求且每秒 10 个新用户,理论平均吞吐量将是 1000 requests/sec). 注意: 1. 总的用户数=持 续 时 间(duration)*每 秒 创 建 的 用 户 数 (1/interarrival 或者 arrivalrate); 2. 如果超过持续时间(duration),将停止创建用户,如果未超过持续时间,但是已达到 maxnumber,那么将停止创建用户 3. 如果已经达到 maxnumber,但是还没达到持续时间,那么停止创建用户 1.5.1 中新添加:可在指定 phase 中使用 session_setup 重写会话的 probability 设置 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 2) 固定生成用户 1.3.1 开始,测 试 期 间 ,可在 一 个 给 定 时 间 内 开 启 一 个 给 定 会 话 (http://tsung.erlang-projects.org/user_manual/conf-sessions.html#sessio ns-label), 例子中,有两个会话,一个有个 0 的 probability(且因此第一个 phase 将不被使用),另 一个 100%。我们定义并开启 3 个用户,期望测试开始 3 分 5 秒后(使用 http-example 会 话),10 分钟后开启另一个,11 分钟后开启最后一个(这时使用 foo 会话)。 in 1.5.1 中新增:一次开启多个会话并且会后名字以同样的前缀开启,可以使用通配符。 沿用前面的例子,该例子仅将在 10 秒后同时开启 2 个用户(一个 foo 会话,另一个 foobar 会话) 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 3) 负载持续时间 缺省的,当所有开启的用户完成了它们的会话时,tsung 结束运行。 因此,实际运行时间 将比 arrivalphase 中设置的 duration 时间更长.如果想在达到指定的持续时间时结束 tsung (纵使 phase 还没结束或一些会话还处于活动状态),可以设置 load 标签中的 duration 属性(1.3.2 中新增该功能): 注意:目前 duration 的最大值不能大于 50 天,unit 可以为 second,miniut 或 hourCurrently 5. option 设置 1) 思考时间,SLL,Buffers 可以设置全局 默认值 :场景中每个请求之间的思考时间(thinktime), SSL cipher algorithms, TCP/UDP buffer sizes (缺省值为 32KB).如果 override 属性值为 true, 这些值可在 session 配置标签中重新设置 2) 消息超时确认 用 于 设置 idle timeout(used for ‘parse’ and ‘local’ ack) 和全局 ack timeout(used for ‘global’ ack). 缺省的,idle timeout 为 10min(600000) , 且 global ack timeout 为 infinity.可以按如下方式更改值 3) Hibernate version 1.3.1.中新增 hibernate 用于减少思考时间期间被模拟用户的内存消耗。默认的,思考时间大于 10 秒,hibernation 将被激活.可按如下更改 注意:设置值为 infinity,以禁用 hibernation 4) Rate_limit 授客 QQ:1033553122 博客:http://ishouke.blog.sohu.com/ 版本 1.4.0 中新增 限制每个客户端的带宽(使用 token bucket algorithm). 值以 Kbytes/秒为单位. 你可以指定一个最大的 burst值(如max='2048').缺省的burst size和速率一样大 . 目前,仅 incoming traffic 有速率限制 5) Ports_range 如果需要在一台客户机上打开多余 30000 个并发连接,将会受到 tcp 客户端口的数量 限制,即使你使用多个 IP (至少 Linux 上是这样).为了突破这个限制,必须自己定义 可用客户端端口范围,例如: 11) AMQP options 可以设置 AMQP 心跳超时,例如设置为 30s(缺省是 600s), add:
还剩18页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 4 人已下载

下载pdf

pdf贡献者

jj_ljw

贡献于2014-11-23

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf