文章 发布于 2016年10月04日  阅读 2257
引言在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?要分析这个问题...
文章 发布于 2016年09月25日  阅读 1156
Java 内存模型堆外内存 / 直接内存(Direct Memory)JDK1.4 中引入的NIO类,基于 channel 和 Buffer 的 I/O 方式,可用 Native 库直接分配堆外内存,然后利用一个存储在堆中的 DirectByteBuffer 对象作为这块内存引用来操作。避免了在 Java 堆 和Native 堆中来回复制数据。直接内存并不是虚拟机运行时数据区的一部分也不是 Jav...
文章 发布于 2016年08月19日  阅读 389
前言并发是计算机发展的成就。(并发,同一时段发生;并行,同一时刻发生)我们知道,早期计算机只能串行的进行运行(最古老的打孔)。而经过多年的发展,计算机可以“同时”做很多事情。但悲剧的是,因为CPU速度和其它设备之间的速度差别太大,比如磁盘IO、网络传输、数据库访问等等,如果不希望CPU在进行这些操作时一直处于等待的状态,就要充分压榨它的性能让它干别的事情。目前在服务器端,衡量一个服务性能的高低好坏...
文章 发布于 2015年07月16日  阅读 1056
Spring 中管理的 Bean 实例默认情况下是单例的(sigleton 类型),但 Spring 中的单例并不会影响应用的并发访问。E.g. 从客户端传递到后台 controller - Service - Dao 这一个流程中,它们这些对象都是单例的,那么这些单例的对象在传递实体 bean 时不会出问题么?由于实体 bean 不是单例的,并没有交给 Spring 来管理,每次都是手动的 Ne...
文章 发布于 2015年07月09日  阅读 2330
JVM 体系结构分为三部分:1. 类加载器(ClassLoader):用于装载 .class 文件2. 执行引擎:用于执行字节码,或者执行本地方法3. 运行时数据区:包括方法区、堆、Java 栈、PC 寄存器、本地方法栈程序计数器占用很小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。JVM 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个时刻一个处理器(或多个处...
文章 发布于 2014年11月26日  阅读 796
问题:JVM 内存频繁预警,内存规律性波动。一. 查看JVM 的GC Collector:Young GC:PS Scavenge | Full GC:PS MarkSweepPS Scavenge 新生代的收集器,也叫 Parallel Scavenge。PS MarkSweep 老生代的收集器,也叫 Serial Old。二. 内存曲线分析1. 频繁 Young GC,产生大量碎片2. 大对象...
文章 发布于 2014年07月03日  阅读 534
什么是内存模型,为什么需要它由于时钟频率越来与难以提高,因此许多处理器制造厂商都开始转而生产多核处理器,因此能够提高的只有硬件并发性。对于并发应用程序中的线程来说,它们在大部分时间里都执行各自的任务。只有当多个线程要共享数据时,才必须协调它们之间的操作。平台的内存模型在共享内存的多处理器体系架构中,每个处理器都拥有自己的缓存,并且定期与主内存进行协调。在不同的处理器架构中提供了不同级别的缓存一致性...
文章 发布于 2014年07月02日  阅读 1330
Cache 一致性问题单核 Cache 中每个 Cache line 有2个标志:dirty 和 valid 标志,它们很好的描述了 Cache 和 Memory 之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器中,多个核会共享一些数据。只有 Core 0 访问变量 x,它的 Cache line 数据和内存中的数据一致,数据只存在于本 Cache 中。3个 Core 都访问变量 x...
文章 发布于 2014年06月30日  阅读 502
编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。同步代码块和同步方法可以确保以原子的方式执行操作,同步还有另一个重要的方面:内存可见性。可见性为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。public class NoVisibility { private static boolean ready; private static int n...
共9条记录 共1页 上一页 首页 1 末页 下一页