Jmeter 之 ServerAgent 在性能测试的时候通过插件监听数据库状态
https://jmeter-plugins.org/downloads/old/
下载几个jar包,导入到Jmeter对应到目录下/lib/ext文件夹下,注意只支持Jmeter3.2(不含)以下版本。
重启Jmeter。
然后在Listner中选中ja@pc --等等应用
新建测试用的取样器,并在监听器选择jp@gc - PerfMon Metrics Collector和jp@gc - Transactions per Second两个监听器,ServerAgent默认是4444端口,也可以修改,比如:./startAgent.sh –udp-port 0 –tcp-port 3450这样
我一般比较习惯到是将SQLserver数据库中
以查询的方式将DB状态新增到自己新建的DB_Status_log表中
如果是性能测试,频繁调用,可以用getdate() 格式化时间后,以想要到单位,比如2s,用while循环插入表中。
这样之后可以查看DB_Status_log来查找DB到瓶颈。
注意要有管理员权限:
1-查看CPU占用量最高的会话及SQL语句 SELECT SPID,CMD,CPU,PHYSICAL_IO,MEMUSAGE, (SELECT TOP 1 [TEXT] FROM ::FN_GET_SQL(SQL_HANDLE)) SQL_TEXT FROM MASTER..SYSPROCESSES ORDER BY CPU DESC,PHYSICAL_IO DESC 2-查看缓存重用次数少,内存占用大的SQL语句 SELECT TOP 100 USECOUNTS, OBJTYPE, P.SIZE_IN_BYTES,[SQL].[TEXT] FROM SYS.DM_EXEC_CACHED_PLANS P OUTER APPLY SYS.DM_EXEC_SQL_TEXT (P.PLAN_HANDLE) SQL ORDER BY USECOUNTS,P.SIZE_IN_BYTES DESC
查看数据库状态,如果一台windows只安装了一个数据库的话,直接通过查看资源管理器也可以看到。虽然略粗俗了点。
以前从未想过一个linux server 如果是4核,要如何具体地看每核到使用率。
第一反应是linux server就是双向公路,4车道到路,为啥只走一车道呢。难道还有3车道被水给淹了吗?
性能测试的瓶颈,一切问题皆IO,
领导永远会承诺你,8G内存不够用16G,4核不够用8核
数据就像小轿车,行驶到公路上到时候一般不会堵,占地面积是有限到,服务器资源可以无限到,一个两个三个~~集群。
停车场是DB,停车是入库,开走车是出库,车位是一张表,频繁进出才会有问题。
停车场到错综复杂就像各个表到外建关联关系,又被各种左右外链接,
君不见停车场到车总是开的那么慢嘛 ~
学无止境
学会记录,比如我忘记了jmeter录制https请求,在mac上用Jmeter各种问题等等,只想让自己谨记如果工具不是你写的,你要么找时间看源代码,要么记得记录吧