JVM

什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加…

JVM菜鸟进阶高手之路七(tomcat调优以及tomcat7、8性能对比)

因为每个链路都会对其性能造成影响,应该是全链路的修改压测(ak大神经常说全链路)。本次基本就是局域网,所以并没有怎么优化,其实也应该考虑进去的。Linux系统参数层面的修改:1、修改可打开文件数和用户最多可开发进程数命令:ulimit -n 655350      ulimit –u 655350可以通过ulimit –a查看参数设置,不设置时默认为1024,默认情况下,你会发现请求数到到一定数值后,再也上不去了。2、操作系统内…

JVM(六)为什么新生代有两个Survivor分区?

Java 发表评论
本文会使用排除法的手段,来讲解新生代的区域划分,从而让读者能够更清晰的理解分代回收器的原理,在开始之前我们先来整体认识一下分代收集器。 分代收集器会把内存空间分为:老生代和新生代两个区域,而新生代又会分为:Eden 区和两个 Survivor区(From Survivor、To Survivor),来看内存空间分布图,如下: (图片来自 fancydeepin) 可以看出 Eden 和 Survivor 分区的默认比例是 8:1:1,这个值可…

Mycat生产实践—性能调优

主机调优 Linux主机的网络性能优化,mycat所在服务器多网卡绑定,bond技术,增加网络吞吐量。 TCP的性能取决于几方面因素,最重要的是链接带宽(link bandwidth)(报文在网络上传输的速率)和往返时间(round-trip time)或RTT(发送报文与接收到另一端的响应之间的延时)。这两个值确定称为BDP(Bandwidth Delay Prod-uct)的内容。BDP给出一种简单的方法计算理论上最优的TCP Socket缓冲区大小(其中保存排队…

jvm 调优

Java 发表评论
这里和大家分享一下JVM参数调优的八条经验,JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,相信通过本文的学习你对JVM参数调优有新的认识。 实例讲解JVM参数调优的八条经验 本文将介绍JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就…

jvm tomact 内存溢出

Java 发表评论
报出java.lang.OutOfMemoryError: PermGen space解决办法:在myeclipse中加大jvm内存方法:Window->Preferences->Myeclipse->Services->Tomcat->Tomcat 6.x->JDK,在Optional Java VM arguments:下边的输入框里输入:-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m上边的数值看起来不大,但是我的项目运行很稳定了,可以先不要急着改掉上边的数值,先用上边的数值运行试试,如果还是溢出的话再适…

JVM调优总结-Xms -Xmx -Xmn -Xss

Java 发表评论
JVM 应用服务器电信CMS 算法  堆大小设置JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64位)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G; 64为操作系统对内存无限制。我在Windows Server 2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java  -Xmx3550m -Xms3550m -Xmn2g  -Xss128k - Xmx3550m:设置JVM最大可用…

【JVM】JVM调优

JVM 发表评论
待整理 http://www.importnew.com/?s=JVM调优总结 首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占…

jvm调优现场

Java 发表评论
jvm 内存查看 线程 1.输出该进程拥有的线程总数 ps -mp pid -o THREAD,tid,time | wc -l 2.输出占用cpu最大的前10线程 ps -mp pid -o THREAD,tid,time | sort -rn | head -10 3.查看进程中线程当前的的状态(thread dump) jstack pid对于查找blocked线程比较有意义 "resin-port-9040-24" #24 daemon prio=5 os_prio=31 tid=0x00007ffbfc212000 nid=0x8503 runnable [0x0000700011cbb000] java.lang.Th…

Java虚拟机内存调优经验

Java 发表评论
转载自 http://www.cnblogs.com/jackyrong/archive/2010/01/21/1653163.html 尊重别人的劳动成果就是尊重自己Java内存组成  1) 堆    运行时数据区域,所有类实例和数组的内存均从此处分配。Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成:    其中eden+fromspace+tospace也叫年轻代(young),old space叫旧生代.    其中还有S1,S0(在JDK的自带工具输出…

Tomcat设定运行jvm的编码

JVM 发表评论
查看jvm编码 可以通过代码确认当前jvm运行的编码 System.getProperty("file.encoding")11 此参数是在jvm启动的时候就已经设置完成。如果没有手动设置file.encoding,会根据当前系统的编码指定。  如果在Windows下,file.encoding=”GBK”,  如果在Linux下,file.encoding=”UTF-8”。 注意:在Tomcat启动完成后,在程序中通过设置system property的方式是没有效果的,原因是jvm启动时读取file.encoding并…

Eclipse 远程调试 Tomcat, Tomcat 虚拟路径 debug

  Eclipse远程调试Tomcat  如何远程调试JVM? 远程调试Tomcat,本质上就是远程调试JVM。倒不是需要了解JVM自身的运行细节,而是要了解JVM上应用程序的运行细节。 无论如何,我们都要获取JVM运行时的内部信息(比如查看调试信息),并对JVM的运行流程进行控制(比如单步执行),才能达到调试的目的。 这个事情光靠调试器本身,肯定是做不到的。不然,JVM的安全性就大打折扣了。除非JVM提供某种“后门”,…

jvm命令行执行和可视化工具

JVM 发表评论
命令行: jps -l 查找jvm进程 jmap -dump:format=b,file=d:\dump.bin 15296 生成dump 文件(15296为1中找出的进程号) jhat d:\dump.bin 分析dump文件 执行上面命令,浏览器中http://localhost:7000/ jstack:堆栈工具,生成jvm当前时刻的线程快照,定位线程出现长时间停顿的原因 jstack -l 15296 jstat 统计内存状况,显示虚拟机进程中类装载、内存、垃圾收集等运行数据 jstat -gcutil 15296 统计内…

JVM如何判断对象已“死”(可达性分析算法)

Java 发表评论
Java堆上存放着几乎所有对象实例,垃圾回收器在对堆进行垃圾回收前需要判断哪些对象还存活?哪些对象已经“死去”(不再被引用)? 除了可达性分析算法外还有引用计数法。 引用计数法 例: A对象引用了B对象,给B对象的计数器+1 C对象也引用了B对象,给B对象的计数器再+1 当引用失效时,计数器-1 任何时刻计数器为0的对象就是不能再被使用的,即对象已“死”,才可以被回收。 这就是引用计数法 虽然引用…