问题出现 线上报警,看监控图,第一个是cpu使用率,第二个是load 排查步骤 查看cpu使用率高的几个线程 查看gc情况 dump内存分析 根据dump分析结果排查具体原因 排查过程查看cpu使用率高的几个线程查看方法:linux性能瓶颈分析 结果如下:The stack of busy(83 ...
linux性能瓶颈分析
常见的几种问题: swap高 load高 cpu使用率 磁盘报警 几种case可能独立出现,也可能有因果关系的导致先后、同时出现。 说一下一般的排查、处理思路 CPU使用率高这个查起来很方便,直接使用top命令,查看CPU使用最高的进程,查找该进程中CPU占用最高的线程,再进行具体排查。 对于 ...
Spring Boot启动过程
Spring Boot启动Spring Boot项目若从main方法启动,走的是SpringApplication的run方法来启动spring容器,从main的入口开始,一步一步往下看: @SpringBootApplicationpublic class Application exten ...
Java8 Collectors.toMap的坑
按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Collectors.toMap反其道而行之,它默认给抛异常,抛异常… 线上业务代码出现Duplicate Key的异常,影响了业务逻辑,查看抛出异常部分的代 ...
BigDecimal精度与相等比较的坑
先想一下,创建BigDecimal对象的时候一般是怎么创建的? new一个,传进去值 BigDecimal.valueOf方法,传进去值 作为一个数字类型,经常有的操作是比较大小,有一种情况是比较是否相等。用equal方法还是compareTo方法?这里就是一个大坑 //new 传进 ...
Innodb的锁与MVCC
事务的四个特性,ACID。来聊一聊一致性。 并发与一致性的关系并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制 常用手段通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versioning) 锁锁的演化思路 串行的 ...
线上大日志文件的删除
磁盘报警线上磁盘报警,查看磁盘使用率: [sage.wang@machine /home/www/web/logs]$ sudo df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 9. ...
Mysql从binlog恢复数据
binlog信息查询查看binlog配置,是否开启,binlog位置: mysql> show variables like '%log_bin%'; +---------------------------------+---------------------- ...