1、问题描述
系统压测时,少量并发,发现延时很高。定位到函数,发现写数据库的函数延时很大。
2、分析过程
第一反应是,可能存在大事务。
分析代码,发现只是简单的读写,并未发现大事务。先排除业务逻辑问题。
分析是否有复杂慢sql,查看数据库慢日志,有执行20多秒的sql,但只是简单的update
复现过程,查看数据库mysql执行状态,show processlist:
上图看到有大量的waiting for handler commit,耗时都是20多秒,线程都在等待commit,这个可能是问题所在
同时观察数据库主机资源情况
磁盘IO,发现磁盘IO有异常情况,IO wait会达到接近100%,数据库主机内存占用也很大。
可初步断定是磁盘存储问题,或者是内存不足。