面试历程(4)

1、常用限流算法及实现

1、固定窗口限流算法
2、滑动窗口限流算法
3、令牌桶限流算法
4、漏桶限流算法
5、分布式流控redis

  • 固定窗口限流(set+incr+expire)
  • 滑动窗口限流(zset+ZCARD)

https://blog.csdn.net/qq_44787816/article/details/127906614?spm=1001.2014.3001.5502

2、CPU暴增问题排查

1、通过top命令来查看那个java进程cpu暴增
2、通过jstack/jcmd 导出该java进程的所有线程调用栈stack
3、查看线程状态,分析线程调用stack,判断问题出现在那段代码

当然还可以通过自己编写javaagent执行jcmd/jstack命令。
除此之外,arthas也能够提供非常良好的支持(例如使用thread,heapdump)

3、内存暴增问题排查

1、通过top命令来查看那个java进程内存爆增
2、通过jmap 查看jvm堆内存映射信息,主要是用了多少空间还剩多少空间(eden,oldGen)
3、通过jstat查看gc情况,一般是gc次数,gc时间
4、通过jmap/jcmd 导出堆内存映射信息.hprof文件,通过jprofile查看占用内存最多的类,判断被谁引用,可能导致的内存泄漏问题

https://blog.csdn.net/weixin_44102992/article/details/126063241?s

你可能感兴趣的:(面试历程,面试,jvm,java)