- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 性能测试之性能分析-线程
可能是由于线程需要去获取第三方资源,如网络等,但是又获取不到response,导致线程进入等待状态,如果发现大量的线程处于waiting on condition,可以去dump下线程信息,查看堆栈信息。TIMED_WAITING: 处于等待状态(有限等待,超时则退出等待),在waiting的基础上记上了timeout的限制,相比于waiting状态,多一种情况:调用sleep()方法。BLOCK: 一般是由于线程在等待某个对象的锁资源,只有获取了锁之后,才会脱离阻塞状态。
2022-11-10 12:34:05
268
原创 性能测试之性能分析-cpu一
cpu性能指标io_wait含义:在一个采样周期内有百分之多少的时间是处于以下状态的:io_wait误区:sys: test1.shcpu高-检查套路id.info文件中查找。
2022-11-10 12:32:10
186
原创 性能测试之数据准备二
D)数据导入:线上数据导入到测试库(PS:这种方法关键数据要脱敏),优点快,缺点:关键数据要脱敏,甚至我们没有真实数据的权限;B)代码生成:模拟开发或通过接口,或通过数据的存储过程生成的数据,优点:快,但对测试而言难度较大;优点:简单,缺点:可能会慢一点(和具体工具有关);C) 业务生成:通过脚本从UI层生成;优点:简单,缺点:比A中的速度还慢;
2022-11-08 09:32:56
462
原创 性能测试之数据准备
d、其他情况:是否是连接超时,是不是哪里有Bug,要不要重新打开试一下。2)、生成百万级别的数据,甚至更多数据怎么办?数据生成器的坑如何绕过。C、生成的SQL语句对不对;b、设置提交时间,等待时间;b、数据生成的规则对不对;有权限–继续往下走;a、 分批次的插入;
2022-11-07 14:27:30
292
原创 性能测试之索引
ON table_name([column1 [ASC|DESC],column2 --bitmap,创建位图索引。CREATE [UNIQUE] | [BITMAP] INDEX index_name --unique表示唯一索引。drop index index_name –删除索引。位图索引: ssex。
2022-11-07 14:26:07
128
原创 性能测试之mysql执行过程
5)、数据库服务器所在机器的性能:CPU、内存、IO(逻辑读、物理读)、网络;硬解析(没有执行计划),软解析(有执行计划)2、影响Oracle数据库性能的点(重点)4)、SQL语句:SQL语句,索引;6)、表设计:字段,库表的设计等;1)、select 语句。2)、insert 语句。
2022-11-03 10:03:00
161
原创 性能测试之mysql一
缓存里面没有有数据的时候,从硬盘里面读出来放到缓存里面,然后再给用户;UPS不间断电源供电,能应对莫名其妙的断电造成的数据丢失;写数据到硬盘,条件:(PS:写数据没有写日志的频率高)1、系统每接入一个用户就会生成一个新的PGA;先写redolog,同时往buffer写数据;PS:有没有执行计划会影响性能的点2;日志要写到硬盘,数据呢,要后写到硬盘。2、库高速缓存区判断是否有执行计划。缓存里面有数据的时候,直接过用户;写数据到数据库中的时候,用到的;commit --往硬盘里面写;8M --往硬盘里面写;
2022-11-03 10:01:39
84
原创 性能测试之Kswapd
因为页面回收总是以cache丢弃、内存swap、等为代价的,对系统性能会有一定程度的影响。2)另外,Linux内核使用cache的策略虽然是不用白不用,内核会使用内存中的page cache对部分文件进行缓存,以便提升文件的读写效率。所以内核有必要设计一个周期性回收内存的机制,以便cache的使用和其他相关内存的使用不至于让系统的剩余内存长期处于很少的状态。1)内核需要为任何时刻突发到来的内存申请提供足够的内存。当真的有大于空闲内存的申请到来的时候,会触发强制内存回收。1.为什么要进行内存回收?
2022-11-02 09:44:12
281
原创 性能测试之内存实例分析二
问题5:swap从173796变成了405948,为什么?问题3:cache少的100000去哪里了。问题2:10:39:55发生了什么。问题4:10:40:25发生了什么。问题1:看到了哪些现象?
2022-11-01 09:39:15
126
原创 性能测试之内存实例分析一
问题2:so有数据就说明内存在开始不足了吗?内存不足的强烈信号【free小,减少,buff和cache也比较小,没有可释放回收的了,同时swpd持续增加】问题3:判断题:当so值增高,swap使用率一直在增高,且free已经很少,说明内存不足?问题1:分析当前内存是否够用?
2022-11-01 09:37:58
129
原创 性能测试之内存使用的一些常见场景
2)free内存不够用,申请内存,释放buffer,cache(自动清理),回收(缓存,最近最少不用的内存页,最近不常用的,内存太紧张,直接杀掉进程OUT OF MEMORY),swap,3)free内存够用,使用swap,取决于swap的优先级设置。1)free内存够用,申请内存,用的就是free。4)free内存不够用,使用swap。
2022-10-31 09:23:31
112
原创 性能测试之系统整体内存的分布
echo 2>/proc/sys/vm/drop_caches 清除slab(slab是管理内存的机制)echo 1>/proc/sys/vm/drop_caches 清除pagecache。echo 3>/proc/sys/vm/drop_caches 清除所有的缓存对象。1)会自动清理(不够用了,内核自己的机制)linux有守护进程定期清理缓冲内容。2)手动清理,前提,你更新了数据,就要进行手动清理。3.slab slab释放,消耗内存,1.应用,进程,申请内存使用内存。
2022-10-31 09:21:39
64
原创 性能测试之内存公式
available是在buff/cache基础上减去了shared以及buffer内存损耗剩下的内存资源,res进程实际使用的内存,进程使用的,未被换出的物理内存,单位kb,RES=CODE+DATA。linux最大限度将物理内存映射到缓存,需要使用内存时,以最快速度获取内存并使用。文件系统是结构,在磁盘这个介质上的所有文件和目录的结构,数据存储在文件系统。top,按F键,增加对应展示的列(敲击空格键)data(全局变量,常量,动态数据)*code(程序,堆栈信息,局部变量)1)top中的内存字段介绍。
2022-10-27 10:42:12
119
原创 性能测试之buff和cache
cpu执行速度最快,cpu执行的指令是从内存中取出的,计算结果要写回内存,内存中的数据要写回到磁盘,1)字面意思,buff缓冲,cache缓存。内存速度比机械硬盘HDD快很多,
2022-10-27 10:20:50
776
原创 性能测试之内存相关概念
多进程,多任务,需要的内存多了,怎么办?内存:增加运算速度,程序运行在内存上,快。计算机:输入,运算,输出。虚拟内存:为什么存在?
2022-10-26 13:45:05
101
原创 性能测试之cpu是否有瓶颈?
如何设置:https://www.cnblogs.com/qq1069284034/p/9414131.html。负载是否高,同时响应时间较慢,多次重现,仍然又很快负载变高,响应时间变慢。c.其他优化,设置NGINX进程分配至多核CPU提升性能。b.cpu本身资源不足,需要增加cpu资源。a.应用程序的问题,致使cpu瓶颈。
2022-10-26 13:43:06
730
原创 性能测试之cpu监控的结论
或者nginx进程分配多核cpu这种设置,或者将进程绑定到cpu,避免进程在多cpu上切换,说明用户态进程占用了较多的 topCPU,所以应该着重排查进程的性能问题。应用程序的bug需要修复优化。kill掉无关进程,
2022-10-25 09:29:24
997
原创 性能测试之vmstat
物理内存free空间不够了,buff,cache,也无法再释放更多了,我们需要swap空间,把内存中(最近最少用的数据,)置换出来到swap out,(so)必定引发bo,磁盘写,这种swap多了,就造成b列,有阻塞进程,都在申请I/O,就会等待,wa就高。当用到这些置换出去的数据时,又要置换回来,就si,swap in,si引发bi(磁盘读)1.id为0,us高,需要进一步拿到top的数据,找cpu高的进程。设备块,1024byte?2.id为0,sy高。3.io读导致wa高。4.io写导致wa高。
2022-10-25 09:27:36
109
原创 性能测试之cpu
b.24核 过去1分钟,5分钟,15分钟的平均负载>10,且小于24 不高。核数, load高不高,不好说,要进一步监控分析(看cpu占比,看进程)a.单核 过去1分钟,5分钟,15分钟的平均负载>10 高。1)load average的结论。结论:高低与否,跟cpu核数有关系。a)平均负载怎么样才算高?如何计算高与不高,结合系数。核数 load不高。>5*核数, load高。
2022-10-24 11:13:05
459
原创 自动化之jmeter-线程组里设置负载信息
说明:线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。如果我的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒。如果设置为0就代表并发请求。Loop Count代表请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。在线程组里设置负载信息,即线程属性。
2022-10-24 11:11:37
298
原创 自动化测试接口之jmeter正则
正则表达式:([0-9]+).([0-9]+) 必须用括号分组。正则表达式:([0-9]+).([0-9]+) 必须用括号分组。正则表达式:([0-9]+).([0-9]+) 必须用括号分组。${aa_1_g1}:取出第一个满足要求的第一组数字。${aa_1_g2}:取出第一个满足要求的第二组数字。${aa_2_g1}:取出第一个满足要求的第一组数字。${aa_2_g2}:取出第一个满足要求的第二组数字。${aa_1}:取出第一个满足要求的数字。${aa_1}:取出第一个满足要求的数字。
2022-10-22 13:45:53
69
原创 性能测试之上下文切换
上下文切换:保存上一个任务进程的上下文到内核,加载新任务进程的上下文,且运行新任务,再次调度上一个任务,看起来连续运行。上下文:存储cpu正在执行的指令位置,下一条指令位置(寄存器,程序计数器)上下文切换context switch。1)什么是上下文切换。
2022-10-21 09:26:13
504
原创 性能测试之进程调度
多道程序,多个进程(多任务,多进程处理),现在都在内存中,都需要运行,cpu现在处理A进程,一会儿再接管B进程。在A与B之间,或者c,d,等进程不断重复接管,运行,就叫调度。单处理器,一个cpu,在同一时间运行一个进程,其他都等着。cpu时间分片,通过在进程间切换cpu,使得计算机高效。背景:多任务,多进程处理,的操作系统。
2022-10-20 11:29:04
188
原创 自动化测试之Java + TestNG + Appium 实现单机多个Android终端并发测试
3、常用: appium -a 127.0.0.1 -p 4727 -bp 4728 --chromedriver-port 9519 -U xiaomi --session-override。2、指定ip和端口号的启动:appium -a 127.0.0.1 -p 4724 --session-override。-bp 是连接Android设备bootstrap的端口号,默认是4724(也可写成–bootstrap-port)启动默认ip:0.0.0.0,端口号:4723。启动ip:127.0.0.1。
2022-10-19 15:15:38
384
原创 性能测试之mysql慢日志分析
-设置查询时间超过1秒时为慢查询。如果是OFF执行–set global slow_query_log=‘ON’;使用pt-query-digest分析MySQL慢日志。编辑配置文件/etc/my.cnf加入如下内容。通过修改配置文件设置慢查询。
2022-10-19 15:05:48
127
原创 性能测试之网络
netstat -anp |awk ‘{print $6}’|sort|uniq -c |sort -rn 统计网络连接状态的计数。模拟延时:tc qdisc add dev ens33 root netem delay 1000ms。查看tcp:tcpdump -nn icmp -i ens33。
2022-10-18 14:12:07
276
原创 接口测试之自动化-接口测试思想
通过修改接口修改数据(校验时除了接口返回信息以外通过sql查询修改信息是否落库ok)2、接口测试的精细程度:拿修改信息的接口做例子。通过新增接口造数据(避免切换环境后初始无数据)通过查询接口查询获取到的原始数据‘1、接口测试的基础是功能测试。
2022-10-18 09:36:39
79
原创 性能测试之mysql性能优化
简单解读,数据查询和执行通常只需要不到0.01秒,而网络输出通常需要1秒左右甚至更长,原本数据连接在0.01秒即可释放,但是因为前端程序未执行close操作,直接输出结果,那么在结果未展现在用户桌面前,该数据库连接一直维持在sleep状态!回到上面影响结果集的问题,一般而言,如果sending data连接过多,通常是某查询的影响结果集过大,也就是查询的索引项不够优化。很可怕的搜索语句会导致这样的情况,如果是数据分析,或者半夜的周期数据清理任务,偶尔出现,可以允许。还有很多状态,遇到了,去查查资料。
2022-10-18 09:35:30
228
原创 性能测试之mysql用户相关
/对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;mysql>update mysql.user set password=password(‘新密码’) where User=“test” and Host=“localhost”;//test用户对所有数据库都有select,delete,update,create,drop 权限。mysql>use ‘数据库名’;
2022-10-17 09:56:19
124
1
windows性能监控小工具合集
2022-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人