Pinpoint服务端安装

1、创建软件目录并下载软件mkdir -p /hdapp/java/media && cd /hdapp/java/media && wget https://zhihui-file-server.oss-cn-hangzhou.aliyuncs.com/Software/javamedia/jdk-8u202-linux-x64.tar.gzmkdir -p /hdapp/hbase/media && cd /hdapp/hbase/media && wget --no-check-certificate https://dlcdn.apache.org/hbase/1.7.1/hbase-1.7.1-bin.tar.gz 2、安装软件 2.1 安装java环境解压并选择java安装目录cd /hdapp/java/media && tar -xf jdk-8u202-linux-x64.tar.gz && mv jdk1.8.0_202/ ../设置java环境变量添加一下内容至 ~/.bash_profileexport PATH=/hdapp/java/jdk1.8.0_202/bin:$PATHexport…

继续阅读 Pinpoint服务端安装

理解JVM架构

为了更好的使用JAVA生态系统的组件,每个JAVA开发者都应该学习理解JVM结构以及JAVA后台是怎么工作的。这篇文章将会介绍夯实的JVM的内部架构和技术。 写作背景 java是一个拥有上千万开发者的多范式(以类为基础的面向对象、结构化、指令型、广泛型、反射型、并发型)程序语言。在所有的知名排名网站、java已经位居榜首连续15年,数以万计的企业级应用程序使用java语言编写。是编写企业级应用程序的首选语言 我会翻译三篇文章理解JVM架构理解JAVA内存模型JAVA垃圾回收内部工作原理 JAVA环境 对任何程序语言来说,都需要构造一个环境。为了能够开发、编译、排查错误、和执行应用程序这个环境会包含所有需要的组件、应用程序接口、lib库等JAVA提供两种环境每个开发者在开发应用程序之前都需要设置好对应的环境 JRE(Java Runtime Environment):最小的java程序运行环境(不支持开发)JRE包含JVM(Java Virtual Machine)和部署相关的组件。JDK(Java Development Kit):用来开发和运行Java应用程序的完整的开发环境。包含JRE和一些开发工具以及debug组件。 JRE用来运行开发同事写好的java程序,JDK是程序员用来写JAVA代码的环境 JAVA运行原理 我们可以用任何终端编辑器(VIM、nano)或者图形界面编辑器(gedit、sublime)写一个简单的Java程序.但是为了实现复杂的Java应用程序,我们需要一个IDE(Intergrated(集成) Development Environment)比如 IntelliJ IDEA、Eclipse、Netbeans.一个经典的Java应用程序需要包含正确的Java语言语法和正确的.java格式。建议使用OOP(Object Oriented Programming)之类的编程概念和适当的体系结构模式,方便后续的维护。 Java语言优势是它的设计理念WORA(write once,run anywhere).Java源代码使用javac(此工具来自JDK)编译器编译成一个叫做bytecode的中间态(.classs 文件)这些bytecode是带有操作行数、十六进制(hexadecimal)格式的文件。 JVM可以将这些指令解释成操作系统和底层硬件平台可以理解的本机语言(不需要进一步编译)。因此,bytecode 扮演着一个独立于操作系统平台的中间态,可以在任意JVM之间移植,不需要关心底层操作系统和硬件架构如何。JVM可以运行应用程序、帮助代码和底层操作系统以及硬件通讯因此我们的操作系统支持(Windows、Linux、Mac),cpu(x86、x64)。 大多数人知道上面的JAVA相关故事,上面故事中的JVM对我们来说就像一个黑盒子,JVM神奇的解释bytecode,并且执行一些java程序运行时的其他操作比如JIT(just-in-time)compilation &GC(Garbage…

继续阅读 理解JVM架构

理解java内存模型

为了开发、压测、部署、调优一个java应用,必须要理解java的内存模型,这篇文章介绍JVM各个内存区域如何支持程序的正常运行。 JVM Memory Model 为了更好地运行一个java应用必须设置以下参数 -XmsSetting — 初始化heap大小-XmxSetting — 最大heap占用-XX:NewSizeSetting — 年轻代大小-XX:MaxNewSizeSetting — 最大年轻代占用-XX:MaxPermGenSetting — 最大permsize(java 8版本后更名为XX:MaxMetaspaceSize)-XX:SurvivorRatioSetting — 年轻代中eden与survivor的比例 (如果年轻代的大小设置为10M,并且–XX:SurvivorRatio=2,则Eden分配的内存为5M,两个survivor(survivor0、survivor1)分别为2.5M 默认为8)-XX:NewRatio — 老年代与年轻代的比例 (默认值 = 2) jvm在主机上的内存占用如下 JVM并不等同于Heap,JVM包含(Heap、非Heap、Cache)用来存储运行时数据和编译java代码. 1) Heap Memory Heap 分为两部分 — 年轻代 and 老年代Heap 在JVM启动时(也可理解为应用启动时)被分配 (I初始化大小: -Xms)Heap…

继续阅读 理解java内存模型