作者归档

MariaDB 源码调试

作者:王成瑞 南京华泰证券信息技术部架构师 2837796568@@qq.com
MariaDB 源码编译
[root@jg-72 source]# pwd
/data/source
[root@jg-72 source]# ls
mariadb-10.1.11.tar.gz

先将源码压缩包解压缩
tar -zxvf mariadb-10.1.11.tar.gz

阅读全文

《JVM故障诊断指南》之4 —— Java 8:从持久代到metaspace

原文链接 原文作者:Byron Kiourtzoglou 翻译:梅小西(904516706)

Java 8介绍了一些新语言以及运行时新特点。其中一个特点便是完全移除了持久代(PermGen),自从Oracle公司发布了JDK1.7后就已经宣布了这个决定。还有比如内部字符串,从JDK1.7开始就从持久代移除了,JDK8的发布彻底废除了它。在这个部分,我们会讨论持久代的继任者:Metaspace。

当执行一个Java程序并出现了“泄露”类元数据对象时我们会比较HotSpot 1.7和HotSpot 1.8的运行时行为的不同点。

一旦Java 8 正式发布,关于Metaspace的最终的参考规范,调优标记以及文档应该就能使用了。

阅读全文

《JVM故障诊断指南》之3 —— Java 线程: JVM持有内存的分析

原文链接 原文作者:Byron Kiourtzoglou 翻译:梅小西(904516706)

前面我们已经讨论过JVM里不同的堆空间,这节我们会给你提供教程,是关于如何从你的活动的应用Java线程中确定它持有多少堆空间,以及在哪里占用。这里有个来自Oracle Weblogic 10.0生产环境的真实案例,它能使你更好的理解分析过程。

我们也会演示这种情况,过多的垃圾收集或者堆空间内存占用问题并不总是由于真实的内存泄露引起,也可能是由于线程执行模型问题和太多的短生命对象引起。

阅读全文

《JVM故障诊断指南》之2 —— 调整合适的Java堆大小的技巧

原文链接 原文作者:Byron Kiourtzoglou 翻译:梅小西(904516706)

在生产系统上决定合适的Java堆大小不是一个容易的操作。许多性能问题的发生都是由于不恰当的Java堆容量的错误调整。这部分将从介绍一些技巧作为开头,它能帮助你在当前的或者新的生产系统上决定最佳的Java堆大小。其中一些技巧对预防OutOfMemoryError问题和内存泄露方面也同样有用。

请注意这些技巧是倾向于“帮助你”决定合适的Java堆大小。因为每一个IT环境都不相同,实际上你是处于最好的时机来精确决定你客户环境所需要的Java堆参数。

阅读全文

《JVM故障诊断指南》之1 —— JVM概览与介绍

原文链接 原文作者:Byron Kiourtzoglou 翻译:梅小西(904516706)

Oracle HotSpot JVM 内存

Java HotSpot 虚拟机堆空间

这个部分将向你介绍Oracle Java HotSpot虚拟机里不同的Java堆内存空间概览。理解这个对于任何一个涉及到线上经常出现的内存问题的解决非常重要。而具有合适的Java 虚拟机堆空间的知识是很关键的。

Java虚拟机是你Java程序的基础,它提供了动态内存管理服务,垃圾收集,线程,IO以及本地操作等等。

Java堆空间是运行时Java程序的内存“容器”,它为你的Java程序提供了它需要的(Java堆,本地堆)合适的内存空间,并由JVM自身管理。

JVM HotSpot内存被分为3个内存空间:
• The Java Heap(堆)
• The PermGen (持久代)
• 本地堆(C-堆)

阅读全文

return top