麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
827
2023-04-05
jmeter 环境部署、数据库设置、分布式设置、多网卡配置等随笔
[root@web-249 ~]# env|grep LANGLANG=zh_CN.UTF-8[root@web-249 ~]# export LANG=zh_CN.UTF-8[root@web-249 ~]# export LANG=en_US.UTF-8[root@web-249 ~]# env|grep LANGLANG=en_US.UTF-8线程组 1 在线程组1中使用__setProperty函数设置jmeter属性值(此值为全局变量值),将所需变量值如${oldtoken}设置为jmeter属性值,即newtoken,示例: 1、添加--后置处理器 -- 正则表达式2、使用正则表达式获取第一个线程组得到的响应信息 例如:oldtoken3、添加--后置处理器 -- BeanShell PostProcessor 4、设置 BeanShell PostProcessor Parameters: ${oldtoken} Script: String oldtoken = bsh.args[0]; print (oldtoken); ${__setProperty(newtoken,${oldtoken},)}线程组 2在线程组2中使用_p函数来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。1、直接使用 ${__P(newtoken,)} 即可获取token的值求并发用户数公式在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务的角度关注应该设置多少个并发数比较合理。下面找一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算。 C=1000/30*5=166.7C表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为166当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确的分析。 -------------------------- 估算并发用户并发数公式:1、用户从登陆系统到退出系统的间隔时间L2、登陆系统的用户数量n3、被考察的时间长度T并发用户数C=nL/T举例:如果系统有3000个注册用户,平均每天400个用户要访问系统,一般一个典型用户在系统中停留4小时(从登陆到退出),在一天内,用户在8小时内使用该系统并发用户数=400X4/8=200 如果你要计算峰值用户数的话,用另外一个公式C1=C+3 X sqr(C)C表示并发用户数根据我之前算出的结果,并发用户数是200,那么公式为:C1=200+3 x sqr(200)=2421、测试计划添加驱动2、添加 测试元件 JDBC Connection Configuration3、配置连接信息Datebase URL :jdbc:mysql://localhost:3306/testJDBC Driver class:org.gjt.mm.mysql.DriverUsername :rootPassword :Datebase URL Driver class Database MySQL jdbc:mysql://host:port/{dbname} com.mysql.jdbc.Driver *** jdbc:postgresql:{dbname} org.postgresql.Driver *** jdbc:***:thin:user/pass@//host:port/service ***.jdbc.driver.***Driver Ingres (2006) jdbc:ingres://host:port/db[;attr=value] ingres.jdbc.IngresDriver MSSQL jdbc:sqlserver://IP:1433;databaseName=DBname com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" net.sourceforge.jtds.jdbc.Driver 1、上传tgz文件2、解压文件 tar -zxvf filename 3、解压完成后,添加环境变量:vi /etc/profile 键入i,可编辑状态,按ESC,退出可编辑状态到命令行,键入“:wq”,按回车保存并退出vi 添加下述两行: export JMETER=/root/apache-jmeter-3.0export PATH=$JMETER/bin:$PATHexport CLASSPATH=$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH完成添加后下述命令使配置生效:source /etc/profile 检查是否配置成功:命令行输入jmeter -v 4、执行JMX文件 jmeter -n -t baidu.jmx -l /root/log.jtl5、检查执行结果 cat /root/log.jtl 出现200,OK则执行通过分布式操作6、bin目录下启动server-jmeter sh jmeter-server 或者 nohup sh jmeter-server &7、检查启动是否成功ps -ef|grep jmeter-serverps aux|grep jmeter-server在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过 100 。 采用JMeter 远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞。 使用多台机器产生负载的操作步骤如下:(1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。(2) 运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.9.99 和192.168.9.130 作为agent)(3)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:查找:remote_hosts=127.0.0.1修改为:remote_hosts=192.168.9.99:1099,192.168.9.130:1099 这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。我们要在多网卡的服务器上开启RMI服务的话必须指定IP,使他们能够在同一个网段内。 需要以下几步(假定所有机器都在10.120.11.*网段,agent服务器为linux,controller服务器为windows):1、 修改agent服务器,指定agent机器的IP修改jmeter-server文件# vi jmeter-server修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要连接的IP)2、修改server服务器,指定server机器的IP修改jmeter.bat文件 新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。