后退调优
现在关于基于层次的和基于技术的等待点的一切都介绍完了,最后一步就是优化每一个等待点的配置。这一步有时被称为“后退调优”,其思想非常简单:
1、开放所有基于层次的等待点和外部依赖池——也就是配置它们允许过多的负载经过服务器。
2、根据应用生成均衡的和具有代表性的服务请求。
3、定位首先透支的等待点,通常是外部依赖,比如数据库。
4、减小配置以控制等待点允许足够的负载经过外部依赖而不透支。
5、调整所有其他基于层次的等待点,发送足够的负载经过服务器,最大化受限制的等待点,但是也不让请求等待。
6、允许所有其他请求在业务逻辑层之上等待,比如web服务器端。
此处的原则就是应用应该发送一定数量的负载给它的外部依赖资源以最大化它们的使用率又不导致透支—并且所有其他等待点应该合理配置以发送足够的负载给这些受限制的等待点。例如,如果数据库对每一个应用服务器最多支持50个连接(例如,配置池容纳40或45个连接)。接下来,如果80个线程产生40个数据库连接,则应用的线程池应配置为80.最后,web服务器在任意时刻应该发送不超过80个请求给每一个应用服务器。
所有基于技术的等待点,比如对象池、缓存和垃圾回收,应该调整到最大化请求的吞吐量使得尽可能快的穿越服务器或者基于层析的等待点之间。
总结
性能调优曾经是“艺术性”多于“科学性”,但是通过结合抽象分析和尝试并产生错误,基于等待的调优方法已经证明能够使该过程更具科学性和更有效率。基于等待的调优首先执行一个应用架构的等待点分析,以此定位有可能导致请求等待的某个技术。等待点来自两方面:基于层次的等待点,代表着跨越应用层次的转换;基于技术的等待点,代表着可能提高或降低性能的技术,比如缓存、池和通讯基础设施。一旦定位好了一系列等待点,调优过程就此开始:开放所有基于层次的等待点和外部依赖池,产生均衡的和具有代表性的负载,然后后退调优,收紧等待点以最大化该请求最薄弱的一环的性能,但是不要透支。基于等待的调优方法在生产环境中已经一次又一次得到了证明,不仅仅是高效的,而且允许性能工程师快速实现可度量的性能优化。
分享到:
相关推荐
### Java性能调优知识点概述 #### 一、高性能Java代码编写原则 - **算法与数据结构**:选择合适的数据结构可以极大地提升程序运行效率。例如,对于查找操作频繁的场景,哈希表(如`HashMap`)比链表或数组更高效。...
Java性能调优是一种针对Java应用程序进行优化以提升其运行效率和响应速度的技术。现代企业级Java应用具有高度的复杂性,涉及多种输入源、多输出形式、复杂的框架和业务处理引擎,这使得调优变得尤为困难。过去,基于...
### 生产环境下的Java排错调优 #### 开源力量公开课第1期——生产环境下的Java排错调优 本次公开课由施懿民老师主讲,聚焦于生产环境下的Java排错与性能优化,这对于提高Java应用的稳定性和效率至关重要。 #### ...
性能调优对于确保应用高效运行至关重要,尤其是对于处理高并发和大数据量的应用来说。本文将深入探讨“WAS性能调优对jvm、线程数、ORB大小的配置”这一主题。 首先,我们要理解JVM(Java Virtual Machine)在WAS中...
### Java性能测试与调优案例 #### JDK优化 在Java应用开发过程中,为了提升程序运行效率及稳定性,对JDK的优化尤为重要。JVM(Java虚拟机)作为Java程序运行的基础,其性能直接影响到应用程序的表现。JVM有两种...
在CMT(Chip Multi-Threading)平台上对Java应用进行性能优化是一个复杂且具有挑战性的过程,尤其是在处理高并发、大规模用户访问的场景下。本文将深入探讨如何在CMT架构下,通过调整JVM参数、优化多线程设计以及...
本文档旨在探讨Java企业版(Java EE)环境下性能调优的最佳实践,包括方法论、负载测试工具、软件栈中的各组件调优策略以及未来性能趋势展望。 #### 二、方法论与过程 ##### SunTone-3D 应用方法论 SunTone-3D 是...
VisualVM是一款强大的Java性能分析工具,它由Oracle公司提供,是Java开发者进行性能调优的重要助手。本资料包含的源码是VisualVM针对Java应用程序的CPU硬件资源管理部分,通过分析这些源代码,我们可以深入了解Java...
Java性能分析工具,如JProfiler,是开发人员和系统管理员在优化Java应用程序时的重要武器。JProfiler是一款功能强大的Java性能剖析器...无论是初学者还是经验丰富的开发者,都能从中受益,提升自己的Java性能调优技能。
4. **Java性能调优**: - VisualVM支持JMX(Java Management Extensions),允许动态修改JVM参数,对于性能优化来说极其方便。 - 它还可以导出CPU和内存快照,用于离线分析,帮助开发者理解应用在特定时刻的资源...
11. **并发性能调优**:书中还会讨论如何监控和优化并发程序的性能,包括JVM的并发参数调整、线程池的配置以及并发工具的使用等。 通过学习《Java并发编程:设计原则与模式(第二版)》,开发者可以掌握Java并发...
5. **性能调优**:`hbase.client.operation.timeout`和`hbase.rpc.timeout`定义了操作和RPC超时时间,防止长时间阻塞。`hbase.region.split.policy`选择合适的分裂策略,如`ConstantSizeRegionSplitPolicy`或`...
Java性能管理系统是一个基于Java技术构建的应用程序,用于管理和优化软件系统的性能。在Java环境中,性能管理涉及监控、分析和调优多个层面,包括CPU使用率、内存管理、线程活动、垃圾回收、数据库连接以及网络I/O等...
7. **性能调优策略**:基于javapms的数据,我们可以采取以下调优策略: - **内存调优**:调整JVM的内存分配,优化新生代和老年代的大小。 - **线程优化**:合理设置线程池大小,避免过多线程导致的资源消耗。 - *...
数据库性能调优涉及SQL优化、索引调整、资源分配、查询缓存和配置参数调整等多个方面。 查询优化器分析和选择执行查询的最佳路径,以最大化性能,它是数据库管理系统的关键组件。 数据库连接池的配置和使用涉及...