可能很多人都知道Java程序上生产后,运维人员都会设定好JVM的堆大小,而且还是把最大最小设置成一样的值.那究竟是为什么呢?一般而言,Java程序如果你不显示设定该值得话,会自动进行初始化设定. -Xmx 的默认值为你当前机器最大内存的 1/4 -Xms 的默认值为你当前机器最大内存的 1/64  显然这样配置的意义是希望JVM可以根据当前运行的环境,动态伸缩堆内存大小.之所以生产上设置成固定大小,网上也是说法不一,很多时候都是使用"防止内存抖动"这样的模糊词语给出解释.但是我相信各位…
集数合计:9章Java视频教程详情描述:A0193<Java生产环境下性能监控与调优详解视频教程>软件开发只是第一步,上线后的性能监控与调优才是更为重要的一步本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx,GC调优等手段: 读懂JVM字节码指令,分析源码背后原理,提升应对线上突发状况的能力Java视频教程目录:第1章 课程介绍(Java秒杀课程…
1.在eclipse设置JVM参数     打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效,也就是在eclipse中运行的java程序)编辑当前使用的JRE,在缺省VM参数中输入: -Xmx1024m -Xms1024m -Xmn256m -Xss16m 或者在运行一个java程序的时候执行: java -Xmx1024m -Xms1024m -Xmn256m -Xss16m  Test Test是一个class文件. 2. 在Tomcat…
年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m.(一般最大堆配置不能超过内存的一半) 典型设置:java -Xmx3550m -Xms3550m -Xmn2g –Xss128k -Xmx3550m:设置JVM最大可…
要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系. 1.JVM(Java Virtual Machine,Java虚拟机) Java虚拟机简称JVM,是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域(内存中不同的区域),JVM也就是Java程序的解释器.不同平台上的JVM也是不同的,但是它们都提供了相同的接口,JVM是…
前言 在生产环境,我们为了降低发版风险,一般都只做增量发布,不做全量发布. 除非项目只有一到两人开发,对时间线和代码脉络结构一清二楚,才可全量发布. 然而增量发布也是有一定隐藏陷阱在里面的,以下就是笔者的项目组在增量迭代过程中一起遇上到陷阱 陷阱1 : 匿名内部类 如果修改的java源码中,有匿名内部类,那么最终在WEB-INF/classes/.......package....../Person.java 下面会生Person$XXX.class的匿名内部类, 但是我们在提交svn时,一般不…
转自: 网络    下载java环境变量设置所需的jdk并安装,下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260-zhs.html   一,java环境变量设置 - 精简版   1.右键打开我的电脑->属性->高级->环境变量   2.新建系统变量JAVA_HOME和CLASSPATH 变量名(N):JAVA_HOME  变量值(V):C:\Program File…
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/10792977.html 一:dbfilter 数据库访问规则设置 一个odoo实例可以连接到不同的数据库实例中,但某个时间只有一个数据库为odoo实例提供服务.当一个odoo实例有多个数据库可供操作时,用户每次登录时都需要先选择一个数据库才能跳转到登陆界面,这在生产环境中会让用户产生很大的困惑.因此,我们需要在生产环境中指定一个规则,让用户只能看到一个数据库并默认连接. 在启动文件.conf中,可以通过 d…
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不…
@echo off title Tomcat环境变量设置 color 0a set /p inputTH=D:\Work\024_Tomcat if /i "%inputTH%"=="" set inputTH=%Tomcat_Home% echo 正在配置环境变量,请稍候...... reg add "HKCU\Environment" /v Tomcat_Home /t reg_sz /d "%inputTH%" /f r…
linux中的环境变量设置,可以在两个地方设置.他们分别是: /etc/profile  在这个文件下设置表示全局的,所有用户有效. 用户工作目录,用 ls -a查看,可以看到有一个.bash_profile文件.如果没有这个文件 自己也可以新建.在这个文件设置,表示只对当前用户有效. 环境变量内容为: export PATH="$JAVA_HOME/bin:$M2_HOME/bin:/opt/local/bin:/opt/local/sbin:$PATH" export JAVA_H…
1  问题现象 应用prod-xxx-k8s,在内存足够的情况下,仍然会产生偶发FullGC的问题. JVM配置如下: -Xmx8192m -Dhsf.server.max.poolsize=2500 -Xms8192m -XX:MaxDirectMemorySize=1026m -XX:+UseGCLogFileRotation -XX:ParallelGCThreads=10 -XX:NewSize=3096m -XX:SurvivorRatio=8 -Xloggc:/home/admin/…
1:JVM字节码指令与 javapjavap <options> <classes>cd monitor_tuning/target/classes/org/alanhou/monitor_tuning/chapter8/javap -verbose Test1.class > Test1.txt 即可保存字节码文件会有三个部分组成操作数栈LineNumberTableLocalVariableTable i++和++i 的执行效果完全相同 多了一个压入栈顶操作for(int…
今天又默默的在linux下安装java 明明是很简单的事情,在~/.bashrc中添加如下内容: export JAVA_HOME=/home/ubuntu/jdkexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/binexport JRE_HOME=$JAVA_HOME/jre 之后 source ~/.bashrc 按道理,应该是没有…
#############################################################jinfo -flag MaxHeapSize 6461#linux: java -XX:+PrintFlagsFinal -version 2>&1 | grep MaxHeapSize#windows: java -XX:+PrintFlagsFinal -version |findstr MaxHeapSize#jconsole#Runtime.getRuntime…
首先线上开启了dump的参数 dump的内容有2G,先进行压缩打包,传输至本地(scp) tar -czvf dump.tar java_pid4824.hprof  使用Jprofile打开dump文件 发现导致内存溢出的是几个PreparedStateMent,查看其内容,发现时插入业务日志的sql 最终发现是代码for循环层级关系错乱导致的.…
转自:http://blog.csdn.net/zhongwen7710/article/details/39213377 第一部分:相关的概念 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte,short,int,long,char,float,double,Boolean,r…
Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知识点总结技术架构原理 https://blog.csdn.net/zhongwen7710/article/details/39213377 写的很好.. 堆栈分不清楚的我 愧对计算机系毕业.. 第一部分:相关的概念 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变…
以下配置主要针对分代垃圾回收算法而言. 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m. 典型设置: java -Xmx3550m -Xms3550m -Xmn2g –Xss128k -Xmx3550…
1. JVM生命周期 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点. 运行.main()作为该程序初始线程的起点,任何其他线程均由该线程启动. 消亡.当程序中的所有非守护线程都终止时,JVM才退出:若安全管理器允许,程序也可以使用Runtime类或者System.exit()来退出. 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序.程序开…
转自:https://www.cnblogs.com/starhu/p/6400348.html?utm_source=itdadao&utm_medium=referral 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为147…
目录 JAVA帝国的诞生 C&C++ JAVA JAVA特性和优势 JAVA三大版本 JDK.JRE.JVE JAVA开发环境搭建 JDK下载与安装.卸载 安装JDK 卸载JDK JDK目录介绍 Notepad下载 JAVA帝国的诞生 C&C++ 1972年c诞生 贴近硬件,运行极快,效率极高 操作系统,编译器,数据库,网络系统等 指针和内存管理 1982年C++诞生 面向对象 兼容C 图形领域.游戏等 JAVA 1995年JAVA诞生 语法有点像C 没有指针 没有内存管理 真正的可以移植…
按照基本回收策略分 引用计数(Reference Counting) 标记-清除(Mark-Sweep) 复制(Copying) 标记-整理(Mark-Compact) 按分区对待的方式分 增量收集(Incremental Collecting) 分代收集(Generational Collecting) 按系统线程分 串行收集 并行收集 并发收集 堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -Xmn:设置年轻代大小 -Xss:设置每个线程的堆栈大小 -XX:NewSize=n:设置年轻…
需求: 当Django项目运行在线上的时候,需要关闭debug模式,那么Django设置中,静态文件路径配置将会失效,如何解决这个问题? 问题原因: Django默认关闭debug模式,Django错误信息将不会返回给请求,setting中静态文件的设置将会自动失效,Django会认为这个是上线的环境 那,如何解决这个问题? 方法1: 把静态文件按照协议,存放在apache服务器等第三方服务器提供传输服务 方法2:Django自己启动一个服务,来进行静态文件传输 那选择方法2来进行配置: set…
Java的三大版本 JavaSE:标准版 JavaME:嵌入式开发 JavaEE:企业级开发 JDK(Java Development Kit):Java开发者工具包 JRE(Java Runtime Environment):Java运行环境 JVM(Java Virtual Machine):Java虚拟机 其中JDK包含JRE包含JVM 一.安装JDK 1.百度搜索进入Oracle官网: Oracle 甲骨文中国 | 集成的云应用和平台服务 2.点击产品 → Java 3.点击下载Java…
/*为防止处理超大作业时超时,将io时间设为1小时         *         <property>            <name>dfs.datanode.socket.write.timeout</name>            <value>6000000</value>        </property>        <property>            <name>dfs.so…
JVM基础:生产环境参数实例及分析 原始配置: -Xms128m -Xmx128m -XX:NewSize=64m -XX:PermSize=64m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=78 -XX:ThreadStackSize=128k-Xloggc:logs/gc.log -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.rmi.dgc.client.gcInterv…
明白生产环境中的jvm参数 写代码的时候,程序写完了,发到线上去运行,跑一段时间后,程序变慢了,cpu负载高了--一堆问题出来了,所以了解一下生产环境的机器上的jvm配置是有必要的.比如说: JDK版本是多少?采用何种垃圾回收器? 程序启动的时候默认分配堆内存空间是多少?随着程序的运行,程序最多能使用多大的内存空间? 程序中使用了多少个线程?这些线程又处于何种状态? 了解了这些,会对程序的运行有一个更好的了解.本文结合生产实践,记录一下我常用的一些操作. 注意:如果没有特殊说明,下面所有的参数讨…
原文地址:http://www.javatang.com JVM Heap Dump(堆转储文件)的生成 正如Thread Dump文件记录了当时JVM中线程运行的情况一样,Heap Dump记录了JVM中堆内存运行的情况.可以通过以下几种方式生成Heap Dump文件: 使用 jmap 命令生成 jmap 命令是JDK提供的用于生成堆内存信息的工具,可以执行下面的命令生成Heap Dump: jmap -dump:live,format=b,file=heap-dump.bin <pid>…
这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca37.jar 图 2. 通过 xManager 工具登录到 AIX 服务器上打开 jca 的效果图 笔者直接在生产环境下直接通过它对产生的 javacore 文件进行分析,令人惊喜的是,其分析结果非常明了,笔者心头的疑云在对结果进行进一步分析核实后也渐渐散去. 图 3. jca 对 javacore…