1. 如何判断性能问题
- 行内默认错误率超过 0.05% 是有问题的
- 查看吞吐量
正常情况下:吞吐量会随着线程的增加而增长
当遇到瓶颈时,吞吐量会持平或者下滑
2. 如果访问一个接口的访问时间很慢,如何查找问题
数据库是否有问题--》缓存redis是否正常--》队列MQ是否正常--》服务器cpu是否正常(内存/带宽/I/O读写)
步骤一: 查看数据库是否存在慢查询
步骤二:查看 redis
如果数据库正常,查看缓存是否失效或者缓存击穿
步骤三: 检查队列MQ
队列效果,起到缓冲的效果,防止堵塞
检查队列是否失效,或者队列过长?
后台查看队列情况,如果下面的情况,就是有问题
步骤四: 查看服务器端
如果CPU大于 80%,就是有问题的,但不一定提高配置就可以,还有可能以下原因:
- 内存占用太高
- 网络带宽不够
- I/O(磁盘)读写操作多
- 开发代码质量差
不管是数据库,redis,还是MQ,还是服务器监控,都可用grafana+prometheus监控系统
(mac)Prometheus监控之Node_exporter(CPU、内存、磁盘、网络等)-CSDN博客
(mac)Promethues监控之mysqld_exporter(MySQL监控)-CSDN博客