硬件升级前:1个CPU,32位系统,1.5G堆
硬件升级后:4个CPU,64位系统,16G物理内存,分配12G堆
管理员为了尽量利用硬件资源,选用了64位JDK,并通过-Xmx和-Xms参数将堆固定在12GB。但是网站经常不定期出现场时间没有相应的现象。
监控发现,是由于GC停顿造成的,虚拟机运行在server模式,默认是吞吐量优先收集器,回收12G堆,一次Full GC停顿时间高达14秒。由于程序设计的关系,访问文档需要把文档从磁盘提取到内存中导致内存中有很多序列化大对象进入到老年代,没有在minor GC时就被回收。
升级前,只是感觉系统缓慢,但是不会发生十分明显的停顿。
在高性能服务器上,通常有2种部署策略
1.通过64位JDK来使用大内存;
2.使用若干个小内存的虚拟机建立逻辑集群来“榨干”硬件资源。
【64位大内存JDK】
使用64位大内存JDK,应当降低full GC的频率来减少对用户的影响。主要对象的生存周期应该是请求级或者页面级的。全局和会话级的场生命周期的对象相对较少只要代码合理,是可以避免的。
通过设置合理的垃圾收集器,也可以在一定程度上避免场时间停顿,例如CMS或者目前最先进的G1垃圾收集器。
另外使用64位大内存JDK的时候需要考虑:
1.内存回收导致场时间的停顿;
2.现阶段,64位JDK性能普遍低于32位JDK;
3.dump的快照文件过大;
4.相同程序在64位JDK里消耗比32位JDK里大,由于指针膨胀等因素造成。
【小内存JDK逻辑集群】
部署方便,可以很容易提高性能,非常适合硬件敏感度较低的场合,尤其是CPU敏感度较低的情况。但是也是有一定缺陷的。
1.资源利用里相对较低,启动的额外“服务”较多;
2.各虚拟节点竞争全局的资源,例如:磁盘IO等;
3.资源池利用率低,不能共享,除非JNDI;
4.大量的本地缓存,重复的对象创建,逻辑想要考虑共享缓存可以得到改善;
分享到:
相关推荐
### ArcGIS Server部署策略与性能优化 #### 一、ArcGIS Server部署策略 **1. ArcGIS Server部署方式** ArcGIS Server提供了多种部署方式,包括集中部署、分布式部署以及群集部署。 - **集中部署**: SOM(Server ...
《Linux高性能服务器编程》这本书是针对那些希望深入理解如何在Linux环境下构建高效、稳定服务器的开发者和运维人员的宝贵资源。书中的内容涵盖了广泛的Linux系统编程和服务器优化技术,旨在帮助读者提升系统的性能...
课程的实践部分可能包含实验和项目,让学生亲手实现并优化高性能计算程序,比如使用CUDA或OpenCL进行GPU编程,或者在真实集群上部署并运行大规模计算任务。 总之,【东北大学高性能计算机体系结构课件】涵盖了高...
实战:Eclipse运行速度调优。案例分析。高性能硬件上的程序部署策略
3. **Gatling**:基于Scala语言的高性能负载测试框架,支持HTTP/HTTPS协议,适合进行高并发测试。 4. **NeoLoad**:提供可视化界面和智能脚本技术,简化了测试过程中的配置和调试工作。 #### 七、结论 性能测试是...
构建高性能的J2EE应用程序是IT领域中的一个重要挑战,尤其在当前大数据和高并发的背景下。J2EE(Java 2 Platform, Enterprise Edition)作为企业级应用开发的标准平台,提供了丰富的中间件服务和组件模型,使得...
《高性能Python》这本书旨在打破这一观念,通过深入探讨Python的实现原理和技术策略,帮助读者了解如何优化代码以达到更高的性能水平。 #### 二、Python性能瓶颈定位与优化 - **理解Python底层架构:** 本书首先...
### Java高性能编程——构建高可用系统的关键技术与实践 #### 引言 随着互联网技术的飞速发展,用户对服务的稳定性和响应速度提出了更高的要求。对于任何IT系统而言,“高可用性”(High Availability, HA)已经...
【高性能ASP.NET应用程序的探讨与研究】 在当前的互联网时代,高性能的Web应用程序已经成为企业级应用的必备条件,尤其是在ASP.NET框架下开发的应用程序。ASP.NET是由微软公司推出的用于构建动态网站、Web应用和Web...
Linux高性能集群是构建在Linux操作系统基础上的多台计算机集合,旨在提供高计算能力和高可用性。在硬件和网络体系结构方面,Linux集群通常由不同类型的节点和网络组成,以实现高效协同工作。以下是对这些元素的详细...
【微软高性能运算系列课程(1):WCCS初探——微软高性能运算平台】 高性能计算(High Performance Computing,HPC)是计算机科学的一个分支,它致力于解决需要大规模计算能力的问题。微软高性能运算平台(Microsoft ...
memcached是一款开源的、高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的响应速度。这里的“单线程性能测试”意味着我们将关注在无多线程并发情况下,memcached服务的处理能力和效率。 **...
服务端通常运行在一台服务器或高性能的电脑上,负责接收客户端发送的硬件信息,存储并处理这些数据,同时提供查询和比较功能。客户端则安装在局域网内的每一台需要被监测的电脑上,它们定期或者按需向服务端报告自身...
本文将详细介绍BusinessObjects产品的部署策略,包括其产品架构、部署环境与类型、硬件需求与性能要素等方面,旨在为初学者提供一个全面的入门指南。 #### 二、BusinessObjects公司简介 BusinessObjects是一家国际...
### 高性能高并发服务器架构的关键知识点 #### 1. 高性能高并发服务器架构概述 - **背景**: 在互联网迅速发展的背景下,越来越多的网站面临着大量用户访问带来的挑战。为了应对这种挑战,需要构建高性能、高并发的...
构建高性能MySQL的核心在于优秀架构设计、最佳数据模型、高效程序代码、合适部署结构及适当资源投入。这些要素共同作用于系统,旨在实现高性能、缩减成本并获取行业竞争优势。构建过程涉及SDLC(软件开发生命周期)...