bg大游馆登录网址性能测试常见问题总结最大衔接数太少○○,形成央浼恭候○○。衔接池日常分为任事器中心件衔接池(譬喻Tomcat)和数据库衔接池(或者通晓为最大答允衔接数也行)○○。
因为:日常来说,崭露这种题目的因为是由于线程block导致○○,当然不消灭其他不妨;
譬喻Jmeter和Loadrunner,单机负载才智有限○,倘若需求模仿的用户央浼数赶上其负载极限○○,也会间接影响TPS(这个光阴就需求举办散布式压测来管理其单机负载的题目)。
安谧性压测一段年光后,LR报错○,日记报g.OutOfMemoryError.Java heap space○。
比如,圭臬架构筹备分歧理,圭臬自身计划有题目(串行管制、央浼的管制线程不敷),形成体系正在大批用户方位机遇能低下而形成的瓶颈○○。
倘若可疑是内存败露,也能够应用JProfiler连上任事器正在起源跑压测,运转一段年光后点击“Mark Current Values”,后续的运转就会显示增量○○,这时施行一下GC○,瞻仰哪个类没有彻底接管,根基就能够推断是这个类导致的内存败露。
用jmap -histo pid test.txt夂箢dump堆内存应用境况,而且保全到test.txt文献中,查看堆内存排名前20个对象○,看是否有己方利用圭臬的办法,从最高的查起,倘若有则检验该办法是什么因为形成堆内存溢出,排查不妨的因为。
3、倘若是use cpu应用过高○,先把泯灭cpu最众的过程寻找来(top夂箢,vmstat),再找到该过程下泯灭cpu过高的线程(top -H -p 过程号)或者(ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu夂箢查找占用cpu高的线程),再把该线进制(printf %x\n 线程号),再用jstack夂箢来dump线程栈,看这个线程栈正在移用什么东西导致use cpu过高(jstack 过程号 grep 16进制的线、倘若是sy cpu过高,起初查看磁盘忙碌水平、磁盘的队伍(iostat、nmon),查看正在没有做压测的境况下○,sy cpu的应用境况,倘若照样较高○,则应用strace查看体系内核移用境况○,找到体系耗cpu的因为(strace -p 过程号)○○。
正在压力测试中○○,有光阴要模仿大批的用户央浼,倘若单元年光内转达的数据包过大○,赶上了带宽的传输才智,那么就会形成汇集资源逐鹿,间接导致任事端给与到的央浼数达不到任事端的管制才智上限。能够通过:直接复制文献传输到另一台任事器 发轫查看网速是否到达汇集带宽上限(scp -r -P 端标语 .123.123:/root/
认识:500舛错体现任事器内部舛错,崭露此舛错时,咱们起初查看任事器日记○○,通过舛错日记音讯定位简直舛错的因为,倘若崭露get null from pool○○,证实数据库成为瓶颈,衔接数不敷导致,此时能够通过调节数据库衔接池巨细管理○○。任事器返回502舛错
崭露TPS摇动较大题目的因为日常有*汇集摇动*、*其他任事资源逐鹿*以及*垃圾接管题目*这三种。
针对mysql:起初掀开数据库的慢盘查○,通过夂箢找到施行对照久的SQL语句:mysql dump slow;认识是因为索引题目照样其他题目。
倘若前20里没有己方的办法○○,则用夂箢:jmap -dump:live,format=b,file=test.dump pid天生dump文献,然后应用MAT举办认识dump下来的堆内存,认识导致内存溢出的办法。
高并发境况下,倘若央浼数据需求写入数据库,且需求写入众个外的光阴○,倘若数据库的最大衔接数不敷,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从涣散、读写涣散等,就会导致数据库事件管制过慢,影响到TPS。
k-nakanoya.com
席卷CPU(筑设、应用率等)、内存(占用率等)、磁盘(I/O、页交流等)。
起初检验JVM筑设参数,倘若参数树立太小,则需求修削JVM参数,修削xms,xmx○○,调节堆内存参数○○,日常是添补堆内存。
1、用top及时监控cpu应用境况。日常境况下cpu应用率目标是不行赶上70%,压测流程中, cpu应用率过高,赶上70%以上○。
应用jstack夂箢查看Java过程下全体线程的境况(jstack -l 过程号),盘查线程栈里有没有block,倘若有的话即是线程死锁,找到死锁的线程○○,认识对应的代码。倘若大批线程都是Waiting形态,则需求去闭切数据库和中心件○○,不妨会有列队境况○○。
从常睹的利用任事器来说,譬喻Tomcat○,倘若堆内存树立对照小○,就会形成再造代的Eden区屡次的举办Young GC,晚年代的Full GC也接管较屡次bg大游馆登录网址,那么对TPS也是有肯定影响的,由于垃圾接管时大凡会暂停全体线、数据库
因为:操作体系没有足够的资源来出现这个线程形成的。体系创筑线程时○○,除了要正在Java堆平分配内存外,操作体系自身也需求分派资源来创筑线程。因而,当线程数目大到肯定水平此后,堆中或者另有空间,不过操作体系分派不出资源来了,就崭露这个特殊了○。
认识:502日常是网闭舛错,同时nginx中会崭露Connection reset by peer,崭露此类报错的常睹因为有:并发数大于任事端最大衔接数○○,任事端会将个中少许衔接紧闭掉。
机能测试境遇日常都是正在内网或者压测机和任事正在统一网段○,可通过监控汇集的收支流量来排查;(局域网能够不商量)其他任事资源逐鹿也不妨形成这一题目,能够通过*Top夂箢或任事梳理*方法来排查正在压测时是否有其他任事运转导致资源逐鹿;
垃圾接管题目相对来说是最常睹的导致TPS摇动的一种因为○,能够通过*GC监控夂箢*来排查(jstat -gc PID 300 10)