摘要: 阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买 美国硅谷可用区1B ECS 专有网络产品 步骤一:创建专有网络VPC并创建交换机(选择创建美国硅谷专有网... 阅读全文
posted @ 2016-02-22 21:44 雄狮_杜 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买 美国硅谷可用区1B ECS 专有网络产品 步骤一:创建专有网络VPC并创建交换机(选择创建美国硅谷专有网... 阅读全文
posted @ 2016-02-22 21:44 雄狮_杜 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 最近碰到的一个Java应用,费了半天劲还是没定位到是哪儿的问。发上来给大家看看,给点建议。 环境 DB Server:32core HPUX DB2 App Server * 2:8core HPUX WAS6.1 每个节点2个app 初次测试现象 WAS,DB2CPU均上不去,CPU、内存、磁盘、 阅读全文
posted @ 2016-02-22 11:44 雄狮_杜 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning · Improv 阅读全文
posted @ 2016-02-22 11:43 雄狮_杜 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK 阅读全文
posted @ 2016-02-22 11:42 雄狮_杜 阅读(131) 评论(0) 推荐(0) 编辑
摘要: JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功 阅读全文
posted @ 2016-02-22 11:41 雄狮_杜 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在 阅读全文
posted @ 2016-02-22 11:40 雄狮_杜 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 常见配置汇总 堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden 阅读全文
posted @ 2016-02-22 11:39 雄狮_杜 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Se 阅读全文
posted @ 2016-02-22 11:38 雄狮_杜 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 分代垃圾回收流程示意 选择合适的垃圾收集算法 串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打 阅读全文
posted @ 2016-02-22 11:37 雄狮_杜 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对 阅读全文
posted @ 2016-02-22 11:36 雄狮_杜 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即, 阅读全文
posted @ 2016-02-22 11:31 雄狮_杜 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark- 阅读全文
posted @ 2016-02-22 11:30 雄狮_杜 阅读(168) 评论(0) 推荐(0) 编辑
摘要: Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object(); 这样在程序中 阅读全文
posted @ 2016-02-22 11:21 雄狮_杜 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -... 阅读全文
posted @ 2016-02-22 11:09 雄狮_杜 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -... 阅读全文
posted @ 2016-02-22 11:09 雄狮_杜 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int y) -... 阅读全文
posted @ 2016-02-22 11:09 雄狮_杜 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte,short,int,long, 阅读全文
posted @ 2016-02-22 10:24 雄狮_杜 阅读(149) 评论(0) 推荐(0) 编辑