问题:
如何查看mysql本身设置的最大链接池?
Q:机器的qps多少?
A:解释:线上的机器多少、数据量情况、业务复杂度=qps
Q:一个机器的经验qps值多少?
A:
压测排查问题步骤:
1. 看各个服务所在机器的cpu的情况:服务端、mysql,看执行情况
数据库:
1. 有没有走索引——加索引
2. 走了索引的sql,扫描行数多的话,依然会影响性能——减少扫描行数:比如分页
服务jvm:
先看监控看版
1. 机器cpu
2.gc有没有正常gc
3.堆的利用率
再进到机器中看机器的jvm详细参数,gc等
再看哪个机器cpu高——进去——看哪个线程cpu占比高——进去,看哪个位置的代码引起:是不是在进行大量计算?读写?(有的时候cpu高是正常的)
应用:
1. redis缓存的命中率
2.自动扩容,缩容机制?比如活动突然量很大了。
发现大量waiting的线程——优化
因为服务,wating的是数据库连接,所以为了不让他阻塞,调大数据库连接池
数据库连接池调大,当然数据库压力会大,cpu会高,正常的