线上问题排查方案

2023-12-29 00:10:16

在一次活动中,监控发现某个微服务中心服务的负载较高,数据库写入速度变慢,排查问题。
主要可从以下几个方面排查

1、生产日志级别

日志级别有 DEBUG、INFO、WARING、ERROR,检查生产环境的日志级别,日志打印多,会不断往日志文件写数据,会拖慢服务器的性能。

2、服务器负载

可登录服务器,如使用 top 命令,查看服务器的load负载情况

3、查看服务调用链路

可查看某几条请求,错误情况,是否是调用的某个服务挂了,超时情况

4、查看数据库写入速度

业务应用可能操作数据库,查看缓存是否生效,是否存在频繁的查询,低频操作的数据库索引是否生效,在Navicat或控制台,使用explain命令,查看执行的SQL是否走索引。

5、检查应用中是否存在多次创建对象

在业务代码中发现使用的是 SimpleDateFormat 格式化日期,其为线程不安全,在高并发下可能有问题,可替换成线程安全的 JodaTime
原格式化

JodaTime 格式化
第一步、引入依赖
即在pom文件中添加依赖。

<dependency>
	<groupId>joda-time</groupId>
	<artifactId>joda-time</artifactId>
	<version>2.10.5</version>
</dependency>

代码中格式化

// String转Date
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern('yyyy-MM-dd');
DateTime dateTime = dateTimeFormatter.parseDateTime(timeStr);
Date date = dateTime.toDate();
// Date 转String
DateTime dateTime = new DateTime(date);
String dateStr = dateTime.toString('yyyy-MM-dd')

文章来源:https://blog.csdn.net/u012190388/article/details/135279872
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。