当前位置: 首页 > news >正文

JVM常见面试题

1、class文件是如何被加载到内存的?

2、说一下jvm的内存模型

3、jdk8默认垃圾回收器是什么?与G1回收器有什么区别?

4、jvm的Xmx和Xms如何设置?

先根据apache的推荐来设置值:

1)堆内存Xms、Xmx为一次fullGC后剩下的老年代内存的3-4倍;

2)新生代Xmn内存和堆内存为3:8;

3)永久代内存为一次fullGC后剩下的老年代内存的1.2-1.5倍;

再通过压测分析:

1)(结合线上交易预估日活和峰值,参考二八定律)观察tps是否达标;

2)观察ygc和fgc的频率和每次gc耗时是否都在预期值内(耗时太长影响响应延迟时间,太频繁也会影响延迟时间)

5、哪些情况会导致内存泄露?

6、内存溢出oom如何排查和优化?dump文件怎么分析?

7、说一下双亲委派机制以及有什么作用?

8、生产上应用cpu突然飙升到100%,应该怎么办?哪些原因可能会导致这个情况?

应该怎么办?

1、重启应用,恢复服务,保证可用;

2、线上分析事故原因:

1)(top 查看进程(或者:ps -ef | grep 应用名称 查看进程号) top -Hp PID查看占用cpu从高到低排序线程,jstack PID>jstack.log导出堆栈快照信息日志文件,cat jstack.log|grep 16进制线程号);

2)arthus工具:thread命令显示所有线程并按cpu排序;thread 线程号 命令显示堆栈信息;

存在哪些可能原因?

1、内存耗用严重导致频繁fgc占用资源;

2、应用触发死循环;

3、线程死锁导致线程拥塞;

4、io耗时过长,如存在大量的慢sql;

9、线程池爆满告警了怎么排查问题?

1、jps

2、jstack PID

3、查看RUNNING状态的线程池堆栈信息,看是否存在线程阻塞或等待情况。

4、查看应用日志观察线程执行时间是否正常,如果都正常,结合流量、cpu、内存情况判断是否线程池核心线程数和最大线程数设置值过小。

http://www.xdnf.cn/news/1021699.html

相关文章:

  • redis-7.4.4使用
  • 详解deeplabv3+改进思路
  • conda pack迁出环境异常
  • AKS升级路线最佳实践方案
  • dockercompose部署应用
  • 实战案例-JESD204B 多器件同步
  • 协同开发中的移动端网页调试流程:一次团队实战的经验总结(含WebDebugX)
  • Unity 接入抖音小游戏一
  • linux 黑马 第1-2章
  • ELK日志采集系统
  • 通过iframe使用Jupyter notebook
  • shell、bash、cmd、git 和 PowerShell 的区别与关系的详细解析
  • 吃透 Golang 基础:函数
  • 混合云战略规划深度解析:多云管理的技术架构与治理框架
  • 动态规划: 背包DP大合集
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 7】【AdapterProperties介绍】
  • 触觉智能RK3576核心板,工业应用之4K超高清HDMI IN视频输入
  • 基于Python的二手房源信息爬取与分析的设计和实现,7000字论文编写
  • 改写爬虫, unsplash 图片爬虫 (网站改动了,重写爬虫)
  • 给element-plus的table表格加上连续序号
  • Kubernetes 从入门到精通-资源限制
  • 清理电脑C磁盘,方法N:使用【360软件】中的【清理C盘空间】
  • Visual Studio Code 1.101.0 官方版
  • 晶晨S905L/S905L-B芯片-安卓7.1.2_【通刷】线刷固件包及教程
  • 解析Android SETUP_DATA_CALL 链路信息字段
  • MultiTalk 是一种音频驱动的多人对话视频生成模型
  • Java 实现 Excel 转化为图片
  • 亚远景-如何高效实施ASPICE认证标准:汽车软件企业的实践指南
  • nvue全攻略:从入门到性能优化
  • 如何使用 Python 对Bing搜索进行抓取