首页SIP Trunk并发与tps的关系-并发与tps的关系不包括

并发与tps的关系-并发与tps的关系不包括

wasd8456wasd8456时间2024-08-27 10:27:37分类SIP Trunk浏览142
导读:一般的Java项目需要JVM调优吗?注意哪些?一般的Java项目需要JVM调优吗?注意哪些?Java因其开源、高效、跨平台、生态好的特性使得它成为当前主流的编程开发语言,即使之前使用其它技术栈的公司现在也慢慢向Java平台迁移。相信很多Java同学在面试时都会被问到JVM调优之类的问题,但似乎感觉日常工作中又很……...
  1. 一般的Java项目需要JVM调优吗?注意哪些?

一般的Java项目需要JVM调优吗?注意哪些?

J***a因其开源、高效、跨平台、生态好的特性使得它成为当前主流的编程开发语言,即使之前使用其它技术栈的公司现在也慢慢向J***a平台迁移。相信很多J***a同学在面试时都会被问到JVM调优之类的问题,但似乎感觉日常工作中又很少JVM调优,那对于一般的J***a项目到底要不要进行JVM调优呢?

什么是JVM调优?

在说JVM调优前,我们得先说说JVM。什么是JVM呢?JVM其实是J***a虚拟机(J***a Virtual Machine)的简称,J***a之所以能跨平台,其实靠的就是JVM。

并发与tps的关系-并发与tps的关系不包括
图片来源网络,侵删)

JVM它是一个虚拟机,虽然JVM本身上是一个计算程序,但它也有自己的一整套软硬件环境。

就好比你新买来了一台电脑,装好了系统后,你能正常使用电脑了。但很多用户是需要对电脑进行一些定制化设置的,比如桌面背景等。同样,JVM在安装后,即使不进行任何额外设置也能正常工作,但在某些场景下同样需要对JVM进行一些调优,而调优的手段就是更改JVM参数。

JVM调优的目的及调优项

并发与tps的关系-并发与tps的关系不包括
(图片来源网络,侵删)

1、JVM调优的目的

JVM调优的目的就是:尽可能使用较小的内存和CPU来让J***a程序获得更高的吞吐量及较低的延迟。

2、JVM常见调优项

并发与tps的关系-并发与tps的关系不包括
(图片来源网络,侵删)

JVM最为常见的调优就是更改JVM默认的参数,比如:

  • 初始堆大小:-Xms

  • 最大堆大小:-Xmx

  • 新生代大小:-Xmn

  • 永生代最小值:-XX:PermSize

  • 永生代最大值:-XX:MaxPermSize

一般项目到底要不要进行JVM调优?

其实JVM默认的设置是能满足常规项目需要的,看上去JVM调优只要改改参数什么的很简单,其实并非我们所想的那么简单。

JVM调优如果调整得不好反而会影响整个项目的稳定,正常情况下不建议大家对JVM进行调优,除非你的J***a项目内存占用过高而你的服务器内存过低时。

视频加载中...

对于还在正常运⾏的系统:

1. 可以使⽤jmap来查看JVM中各个区域的使⽤情况

2. 可以通过jstack来查看线程的运⾏情况,⽐如哪些线程阻塞、是否出现了死锁

3. 可以通过jstat命令来查看垃圾回收的情况,特别是fullgc,如果发现fullgc⽐较频繁,那么就得进⾏调优了

4. 通过各个命令的结果,或者jvisualvm等⼯具来进⾏分析

5. ⾸先,初步猜测频繁发送fullgc的原因,如果频繁发⽣fullgc但是⼜⼀直没有出现内存溢出,那么表示fullgc实际上是回收了很多对象了,所以这些对象最好能在younggc过程中就直接回收掉,避免这些对象进⼊到⽼年代,对于这种情况,就要考虑这些存活时间不⻓的对象是不是⽐较⼤,导致年轻代放不下,直接进⼊到了⽼年代,尝试加⼤年轻代的⼤⼩,如果改完之后,fullgc减少,则证明修改有效

6. 同时,还可以找到占⽤CPU最多的线程,定位到具体的⽅法,优化这个⽅法的执⾏,看是否能避免某些对象的创建,从⽽节省内存

阿里京东、蚂蚁等大厂面试真题解析

对于已经发⽣了OOM的系统:

1. ⼀般⽣产系统中都会设置当系统发⽣了OOM时,⽣成当时的dump⽂件(-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/base)

2. 我们可以利⽤jsisualvm等⼯具来分析dump⽂件

3. 根据dump⽂件找到异常的实例对象,和异常的线程(占⽤CPU⾼),定位到具体的代码

4. 然后再进⾏详细的分析和调试

总之,调优不是⼀蹴⽽就的,需要分析、推理、实践、总结、再分析,最终定位到具体的问题

一般的项目肯定是不需要的。其实 JVM 调优的可操作的空间很小,绝大部分时候我们也仅仅只用到几个内存设置参数,设法降低 Full GC 频率,实际上调整 JVM 带来不了多少性能提升。程序性能不佳,撑不住业务,往往问题出在程序本身,很多时候都是程序中有大列表或者创建对象频率过高,导致内存增长过快频繁Full GC,CPU因为Full GC跑满。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.pj1663.com/post/1579.html

JVMJ***a对象
给美国人发短信可以吗翻译-给美国人发短信可以吗翻译成英文 关闭国际短信业务怎么设置-关闭国际短信业务怎么设置的
  • 业务咨询
  • 业务咨询
  • 飞机号:@hpx639