JVM的自愈能力】的更多相关文章

在IT行业,碰到问题的第一个反应通常是——“你重启过没”——而这样做可能会适得其反,本文要讲述的就是这样的一个场景. 接下来要介绍的这个应用,它不仅不需要重启,而且毫不夸张地说,它能够自我治愈:刚开始运行的时候它可能会碰到些挫折,但会渐入佳境.为了能实际地展示出它的自愈能力,我们尽可能简单地重现了这一场景,这个灵感还得归功于五年前heinz Kabutz发表的一篇老文章: package eu.plumbr.test; public class HealMe { private static f…
ImportNew注:本文是JVM性能优化 系列-第4篇.前3篇文章请参考文章结尾处的JVM优化系列文章.作为Eva Andreasson的JVM性能优化系列的第4篇,本文将对C4垃圾回收器进行介绍.使用C4垃圾回收器可以有效提升对低延迟有要求的企业级Java应用程序的伸缩性. 到目前为止,本系列的文章将stop-the-world式的垃圾回收视为影响Java应用程序伸缩性的一大障碍,而伸缩性又是现代企业级Java应用程序开发的基础要求,因此这一问题亟待改善.幸运的是,针对此问题,JVM中已经出…
前阵       对底层账单系统进行了压测调优,调优的最后一步--jvm启动参数中,减小了线程的堆栈空间:-XX:ThreadStackSize=256K,缩减至原来的四分之一,效果明显,不过并没有调试其他内存空间及gc相关参数.这次有机会在实际压测中,调优这一部分内容,笔者以cms收集器为例,将有.无调优配置情况下的压测结果进行对比,来分析各项调用参数的意义及效果. 准备工作: 1.调用查询接口的测试jar包,作为dubbo-consumer,依赖了查询服务的api,测试module基于mav…
如何在高性能服务器上进行JVM调优:以便充分利用高性能服务器的硬件资源,有两种JVM调优方案. 一.        采用64位操作系统,并为JVM分配大内存 分析:如果JVM中堆内存太小,那么就会频繁地发生垃圾回收,而垃圾回收都会伴随不同程度的程序停顿. a)        优点:扩大堆内存的话可以减少垃圾回收的频率,从而避免程序的停顿.因此,人们自然而然想到扩大内存容量.而32位操作系统理论上最大只支持4G内存,64位操作系统最大能支持128G内存,因此我们可以使用64位操作系统,并使用64位…
1.问题 1.如何理解类文件结构布局? 2.如何应用类加载器的工作原理进行将应用辗转腾挪? 3.热部署与热替换有何区别,如何隔离类冲突? 4.JVM如何管理内存,有何内存淘汰机制? 5.JVM执行引擎的工作机制是什么? 6.JVM调优应该遵循什么原则,使用什么工具? 7.JPDA架构是什么,如何应用代码热替换? 8.JVM字节码增强技术有哪些? 2.关键词 类结构,类加载器,加载,链接,初始化,双亲委派,热部署,隔离,堆,栈,方法区,计数器,内存回收,执行引擎,调优工具,JVMTI,JDWP,J…
节点健康检测 意义 在K8S集群运行的过程中,节点常常会因为运行时组件的问题.内核死锁.资源不足等各种各样的原因不可用.Kubelet默认对节点的PIDPressure.MemoryPressure.DiskPressure等资源状态进行了监控,但是当Kubelet上报这些状态的时候,节点很可能已经长时间处于不可用状态了,并且Kubelet可能已经开始了驱逐Pod的操作.所以原生K8S对节点健康的检测机制在一些场景下是不完善的,我们需要能够在节点出现问题之前提前发现,并且需要更加细致化的指标来描…
内存布局**** ​ JVM内存布局规定了Java在运行过程中内存申请.分配.管理的策略,保证了JVM的稳定高效运行.不同的JVM对于内存的划分方式和管理机制存在部分差异.结合JVM虚拟机规范,一起来探讨jVM的内存布局.如下图所示: Heap 堆区 ​ Heap堆区是Java发生OOM(Out Of Memory)故障的地方,堆中存储着我们平时创建的实例对象,最终这些不再使用的对象会被垃圾收集器回收掉,而且堆是线程共享的.一般情况下,堆所占用的内存空间是JVM内存区域中最大的,我们在平时编码中…
转自:http://blog.csdn.net/jmppok/article/details/17264495 本文结合网上一些资料,对他们进行整理,摘选和翻译而成,对Akka进行简要的说明.引用资料在最后列出. 1.什么是Akka Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用. 官方网站 (http://akka.io/)的介绍是: Akka is a toolkit and runtime for buildi…
使用C4垃圾回收器可以有效提升对低延迟有要求的企业级Java应用程序的伸缩性. 到目前为止,stop-the-world式的垃圾回收视为影响Java应用程序伸缩性的一大障碍,而伸缩性又是现代企业级Java应用程序开发的基础要求,因此这一问题亟待改善.幸运的是,针对此问题,JVM中已经出现了一些新特性,所使用的方式或是对stop-the-world式的垃圾回收做微调,或是消除冗长的暂停(这样更好些).在一些多核系统中,内存不再是稀缺资源,因此,JVM的一些新特性就充分利用多核系统的潜在优势来增强J…
概述 背景 Apache Doris官方地址 https://doris.apache.org/ Apache Doris GitHub源码地址 https://github.com/apache/incubator-doris Apache Doris是一个现代化的MPP分析型数据库产品.仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析.Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集. Apache Doris可以满足多种数据分析需求,例…
var c = new Array(); var d = new Array(); var e = new Array(); var f = new Array(); var g = new Array(); var zzjmCursor = 0; function zzjminit() { zzjminitName(); zzjminitRectChoose(); zzjminitRectChoosePic(); zzjmSetVisible(0); zzjminitZhongZuShuoMi…
20145225<Java程序设计> 第5周学习总结 教材学习内容总结 第八章 异常处理 8.1语法与继承架构 try.catch:try.catch代表错误的对象后做一些处理. 异常继承架构:错误会被包装为对象,这些对象均可抛出,因此设计错误对象都继承自java.lang.Throwable类,Throwable定义了取得错误信息.堆栈追踪(Stack Trace)等方法,它有两个子类:java.lang.Error与java.lang.Exception.在此简述一下Error类与Exce…
导演: 蒂姆·米勒编剧: 略特·里斯 / 保罗·沃尼克 / 费边·尼谢萨 / 罗伯·莱菲尔德主演: 瑞恩·雷诺兹 / 莫蕾娜·巴卡林 / 艾德·斯克林 / T·J·米勒 / 吉娜·卡拉诺 / 更多...类型: 喜剧 / 动作 / 科幻 / 冒险制片国家/地区: 美国 / 加拿大语言: 英语上映日期: 2016-02-12(美国)片长: 108分钟又名: 死侍:不死现身(港) / 恶棍英雄:死侍(台) / X战警:死侍 死侍的剧情简介 :该片是<X战警>系列电影的外传.讲述了前任特种兵韦德·威尔…
20145215<Java程序设计>第五周学习总结 教材学习内容总结 异常处理 语法与继承架构 异常就是程序在运行时出现不正常情况,异常的由来是因为Java把出现的问题封装成了对象,换句话说Java中的错误也是以对象的方式呈现为java.lang.Throwable的各种子类实例,那么对于我们来说,当然是希望能解决程序的异常,因此在Java中也提供了特有的处理异常的语句. 使用try.catch: Java中所有错误都会被包装成对象,可以尝试(try)执行程序并捕捉(catch)代表错误的对象…
前言:先聊两句,上午电路实习,刚开始没多久就让电烙铁烫了,倒霉催的~晚上来这里接着弄代码,透心凉心飞扬~ 教材学习内容总结 一.异常处理 1.语法与继承结构 使用try.catch: Java中所有错误都会被包装成对象,可以尝试(try)执行程序并捕捉(catch)代表错误的对象后做一些处理.使用了try.catch语法,JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序会跳离错误发生点,然后比对catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是就执行catch中的程序…
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf2.html 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求 这个由五个部分组成的系列提供了若干技巧和技术,这些技巧和技术通常用于优化 Java™ 应用程序,以便在 AIX® 上实现最佳的性能.其中还提供了有关每个技巧的适用性讨论.使用这些技巧,您应该能够快速优化 Java 环境,以适合应用程序的需要. 查看本系列更多内容 | 0 评论:…
http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mesos YARN EC2 Local 在向集群提交计算任务后,系统的运算模型就是Driver Program定义的SparkContext向APP Master提交,有APP Master进行计算资源的调度并最终完成计算.具体阐述可以阅读<Spark:大数据的电花火石!>. 那么Standalone…
最近在写一个天气数据推送的项目,准备用缓存来存储数据.下面分别介绍一下fourinone分布式缓存和Redis分布式缓存,然后对二者进行对比,以供大家参考. 1  fourinone分布式缓存特性 1.1  没有持久化,依靠主从备份来容灾: 1.2 依赖JVM,存储能力受JVM配置内存限制,插满之后拒绝再插入:…
ZigBee采用802.15.4标准作为其对等通信的基础.该标准由ZigBee联盟(ZigBee Alliance)开发并管理.ZigBee Alliance是一家投资于该标准并在无线领域进行推广的联合组织,并且日益为业界所关注.不过ZigBee拥有自己独特的应用功能,用户应对此进行充分了解,而不是仓促地将其应用于所有的低功耗无线应用领域. ZigBee最常用作异步通信标准,其具备CSMA/CA通道接入能力,并拥有802.15.4章节所述的所有功能.针对相同市场领域的情况下,相比之下ZigBee…
概要 近期这几天開始进入java的学习,接触到了好多不是非常了解的概念,像JDK.JRE.JVM.GC等等这些,放到这里来进行下扫盲. java java是一种面向对象程序设计语言和java平台的总称,即java包含java语言和java平台. java语言 java语言跟我们曾经接触过的C#.C++语言一样都是面向对象的语言,拥有面向对象语言的基本特点,java语言也有它自身的特点.比如添加了垃圾回收的一些特点. 同一时候java语言的编程风格跟C#.C++也特别的相似,全部java语言是比較…
了解云计算数据中心网络架构的过程中,看到这么一篇不错的关于大二层技术overlay的文章,转载分享给大家! 一. 传统网络面临的问题 随着企业业务的快速扩展需求,IT做为基础设施,快速部署和减少投入成为主要需求,云计算可以提供可用的.便捷的.按需的资源提供,成为当前企业IT建设的常规形态,而在云计算中大量采用和部署的虚拟化几乎成为一个基本的技术模式.部署虚拟机需要在网络中无限制地迁移到目的物理位置,虚机增长的快速性以及虚机迁移成为一个常态性业务.传统的网络已经不能很好满足企业的这种需求. 传统网…
系统整体对比 对比说明 /文件系统 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 开发语言 C++ C Perl C C C++ 开源协议 GPL V2 GPL V3 GPL GPL V3 GPL V3 LGPL 数据存储方式 块 文件/Trunk 文件 块 文件/块 对象/文件/块 集群节点通信协议 私有协议(TCP) 私有协议(TCP) HTTP 私有协议(TCP) 私有协议(TCP)/ RDAM(远程直接访问内存) 私有协议(TCP) 专用元数据存…
强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 下面通过实践学习 Kubernetes 的 Health Check 功能. 默认的健康检查 我们首先学习 Kubernetes 默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由 Dockerf…
一.背景 今天部署项目到tomcat,执行./startup.sh命令之后,访问项目迟迟加载不出来,查看日志又没报错(其实是我粗心了,当时tomcat日志还没打印完),一开始怀疑是阿里云主机出现问题,访问ip:80发现nginx运行正常.在我百思不得其解时,项目访问正常了,查看启动日志,发现如下: 15-Mar-2018 16:41:02.302 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecure…
一.Pod 在Kubernetes集群中,Pod是创建.部署和调度的基本单位.一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个应用的容器.在同一个Pod内部,多个容器共享存储.网络IP,以及管理容器如何运行的策略选项.Docker是Kubernetes中最常用的容器运行时. 在Kubrenetes集群中,Pod有两种使用方式,如下所示: 一个Pod中运行一个容器 这种模式是最常见的用法,可以把Pod想象成是单个容器的封装,Kubernetes直接管理的是Pod,而不是Pod内部的容器…
笔者在上一篇blog<<第三方支付架构设计之-帐户体系>>中已经稍微全面的阐述了第三方支付架构设计中的账户体系,在该体系中,其实涉及了各种各样的账户:银行侧账户(包括用户在银行侧的账户:用户借记卡,信用卡,商户在银行侧的清算账户,结算账户等),第三方支付自有账户(跟银行侧账户比较类似,包括用户在第三方支付公司的账户和商户在第三方支付公司的账户)等.           我们知道,第三方支付本身是不直接接触实际资金的,所有的资金流必须走银行系统进行,因此这里涉及到的实际资金流的时候就…
默认的健康检查 强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 每个容器启动时都会执行一个进程,此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定.如果进程退出时返回码非零,则认为容器发生故障,Kubernetes 就会根据 res…
第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算资源 计算资源:由系统分配,操作系统按照一定的规则来分配什么时候由谁来获得CPU的计算资源(CPU是计算单元,对输入的数据和指令进行计算) 存储资源:就是内存,存储资源是操作系统管理和分配 1.进程定义:一个程序在一个数据集上的一次运行 /一个程序在多个数据集上/一个程序在同一个数据集上运行多次/是…
1.Kubernetes是什么 Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务.通过Kubernetes能够进行应用的自动化部署和扩缩容.在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现.Kubernetes积累了作为Google生产环境运行工作负载15年的经验,并吸收了来自于社区的最佳想法和实践.Kubernetes经过这几年的快速发展,形成了一个大的生态环境,Google在2014年将Kubernetes作为开源项目.Kuberne…
自愈能力是容器的重要特性.自愈的默认方式是自动重启发生故障的容器. 用户还可以通过liveness和readiness探测机制设置更精细的健康检查,进而实现: 1.零停机部署 2.避免部署无效的镜像 3.更加安全的滚动升级 kubernetes默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由dockerfile的cmd或entrypoint指定.入伏哦进程退出的时候返回的是非零,则认为容器发生故障,Kubernetes就会根据restartpolicy重启容器 下面模拟一个容器发生…