郭朝的博客

—— 生命不息,奋斗不止,万事起于忽微,量变引起质变。

MySQL 性能调优——高可用架构设计

高可用性(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。常见的高可用衡量指标有 5 个 9、4 个 9、3 个 9,例如 5 个 9 即 99.999%,意味着每年只能有 (365 * 24 * 6...

2019-06-16 22:23:40

阅读数 77

评论数 0

MySQL 性能调优——数据库结构优化

良好的数据库逻辑设计和物理设计是数据库获得高性能的基础。优化数据库结构可以减少数据冗余(相同的数据在多个地方存在);尽量避免数据维护中出现更新,插入和删除异常(通过范式化设计解决);节约数据存储空间;提高查询效率。

2019-06-16 22:22:19

阅读数 38

评论数 0

MySQL 性能调优——数据库存储引擎的选择

数据库存储引擎的选择会对性能产生直接的影响。存储引擎是针对于表的而不是针对于库的(一个库中的不同表可以使用不同的存储引擎)。MyISAM 是 MySQL 5.5 之前版本默认的存储引擎。MySQL 5.5 及之后版本默认存储引擎改为了 InnoDB。

2019-06-16 22:19:43

阅读数 48

评论数 0

MySQL 性能调优——影响数据库性能的几个方面

本篇数据库版本我们选择 MySQL Community Server 5.7,操作系统选择 CentOS 7.2。需要注意的是 MySQL 5.7 并不支持多 cpu 并发运算,意味着每条 sql 只能用到 1 个 cpu。大表和大事务也会影响数据库的性能,一般 MySQL 单表行数超过千万行 或...

2019-06-16 22:18:10

阅读数 53

评论数 0

Java 内存分析工具 MAT 安装使用实例

生产环境中,一旦出现内存泄漏,长期运行下非常容易引发内存溢出(OutOfMemory,OOM)故障,如果没有一个好的工具提供给开发人员定位问题和分析问题,那将会是一场噩梦。为此,JDK 提供了一些内存泄漏的分析工具,如 jconsole,jvisualvm 等,用于辅助开发人员定位问题,但是这些工...

2019-05-28 20:39:25

阅读数 2113

评论数 1

JVM 技术内幕——JVM 参数汇总

JVM 技术内幕——JVM 参数汇总

2019-02-01 12:10:44

阅读数 114

评论数 1

JVM 技术内幕——Java 内存模型

并发处理的广泛应用是使得Amdahl定律替代摩尔定律成为计算机性能发展原动力的根本原因。由于计算机的主内存与CPU的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近CPU运算速度的高速缓存(L1 Cache、L2 Cache、L3 Cache)来作为主内存与CPU之...

2018-11-19 18:43:24

阅读数 109

评论数 0

JVM 技术内幕——HotSpot VM 内的 JIT 编译器

在主流的商用虚拟机(Sun HotSpot、IBM J9)中,java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为 "热点代码"(...

2018-11-16 18:12:49

阅读数 152

评论数 0

JVM 技术内幕——JVM 类文件结构与类加载机制

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。实现语言无关性的基础是 VM 和字节码存储格式,JVM 不和包括 Java 在内的任何语言绑定,它只与 "Class 文件" 这种特定的二进制文件格式所关联,Class 文...

2018-07-30 10:41:35

阅读数 147

评论数 0

JVM 技术内幕——JVM 性能监控与故障处理工具

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括运行日志、异常堆栈、GC 日志、线程快照 (threaddump/javacore 文件) 堆转储快照 (headdump/hprof 文件) 等。经常使用适当的 JVM 监控和分析的工具可以...

2018-07-21 16:23:04

阅读数 161

评论数 0

JVM 技术内幕——Serial/Serial Old收集器下对象的内存分配与回收策略

对象的内存分配,往大方向说,就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在 TLAB 上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数的设置。

2018-07-17 17:11:49

阅读数 160

评论数 0

JVM 技术内幕——理解 GC 日志

阅读 GC 日志是处理 JVM 内存问题的基础技能,它只是一些人为确定的规则,每一种收集器的日志形式都是由它们自身的实现所决定的,但 JVM 设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,例如下面两段典型的日志: 33.125: [GC [DefNew: 3324K-&gt...

2018-06-16 22:25:14

阅读数 230

评论数 0

JVM 技术内幕——HotSpot VM 的垃圾收集器

如果说收集方法是内存的方法论,那么垃圾收集器就是内存回收的具体实现。JVM 规范中对垃圾收集器应该如何实现并没有任何规定,因此不同厂商、不同版本的 JVM 所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。

2018-06-03 22:46:40

阅读数 183

评论数 0

JVM 技术内幕——对象存活判定算法、垃圾收集算法

目前内存的动态分配与内存回收技术已经相当成熟,一切进入了“自动化”的时代,那为什么还需要去了解GC和内存分配呢?答案很简单,当需要排查各种内存溢出、内存泄露问题时,GC成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。...

2018-05-02 23:16:49

阅读数 267

评论数 0

JVM 技术内幕——HotSpot VM 在堆中对象的创建、内存布局、访问

目前内存的动态分配与内存回收技术已经相当成熟,一切进入了“自动化”的时代,那为什么还需要去了解GC和内存分配呢?答案很简单,当需要排查各种内存溢出、内存泄露问题时,GC成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。...

2018-03-14 22:46:02

阅读数 203

评论数 0

JVM 技术内幕——走近 JVM、JVM 运行时数据区

JDK (Java语言、工具及工具API、Java SE API、JVM) 是用于支持 Java 程序开发的最小环境,JRE (Java SE API、JVM) 是支持 Java 程序运行的标准环境。首先看一下 Java 发展史: 版本 时间 内置虚拟机 代表技术 1.0 1...

2018-01-26 16:34:54

阅读数 343

评论数 0

基于 Redis 实现的分布式锁

分布式锁应用场景大都是用在高并发,大流量场景。当多个进程不在同一个系统中,就需要用分布式锁控制多个进程对资源的访问。本篇介绍的是基于 Redis 实现的分布式锁。首先看两个 Redis 的命令:SETNX key value。将key设置值为value,如果key不存在,这种情况下等同SET命令。...

2017-12-05 17:21:00

阅读数 4192

评论数 1

基于 Zookeeper 实现分布式锁

在我们进行单机应用开发,涉及并发同步的时候,我们往往采用 synchronized/Lock 方式来解决多线程间的代码同步问题。但当我们的应用是分布式部署的情况下,那么就需要一种更加高级的锁机制来处理这个进程级别的代码同步问题。那么接下来引出现在比较常用的几种分布式锁实现方案

2017-12-05 10:17:59

阅读数 1295

评论数 0

Spring Boot 构建应用——整合 Velocity 模板引擎

Velocity 是一个基于 Java 的模板引擎,它可以使用简单但功能强大的模板语言来引用 Java 代码中定义的对象。除此之外,Velocity 还可用于从模板生成 SQL、PostScript 和 XML,既可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。

2017-11-06 21:55:30

阅读数 1260

评论数 0

高并发系统 TP性能、方法可用率 记录

Restful 本质上是一个优雅的 URI 表达方式,基于 Restful 设计的软件可以更简洁,更有层次,更易于实现缓存等机制。资源的状态和状态转移。下面来看一组 传统API 和 RESTful API 写法的对比。Restful API 用 URL 描述资源,用 HTTP 方法描述行为,使用 ...

2017-11-06 16:41:40

阅读数 1615

评论数 0

提示
确定要删除当前文章?
取消 删除