转载: http://ujnlu.iteye.com/blog/1098765
以前面试的时候,总被面试官问及性能调优的问题,今天按我的理解总结一下。
性能调优牵扯的地方很多,具体要根据实际项目应用入手,大体上分下面几个方向:
- java
java调优一般是指参数调优,代码方面尽量用工厂模式,特别对于一些大的对象,gc回收会很耗时间,这点effective java里讲了很多。多使用jdk自带的工具类,多线程方面可以考虑util下面的concurrent集合包。GC回收一般是回收堆里的数据,堆分new区,old区,静态方法区,对于频繁生成对象的项目可以把new区设置的大一些,对对象变化不大,设置old区大一些。垃圾回收方式分串行,并行,并发,要根据项目紧急程序选择。最后还要分析gc回收日志,可以利用jdk自带的工具,像jstack.jmap,jconsole等,还可以使用jprofiler,这个很强大,不过是收费的。
2. 中间件
多使用中间件提供的特性 如:安全机制,事物机制,消息机制等,中间件对分布式提供了很好的支持,通过中间件配置线程池以及数据库连接池,由容器来管理实例,可以减少开启以及关闭的开销。
3. 数据库
大表尽量少关联,提前对表analysis,分表分区,大表要建索引,查询数据尽量走索引,减少full table的查询,对于必须要进行的大表关联,可以提前一天生成view。定期对索引重建。
架构方面一般是:
DNS IP段分发:有效的分发请求。
LP:软件负载通过现有的工具取余或者轮询等,硬件F5负载,听说新浪是通过这个实现的。
动静分离:配合apache静态文件搞笑支持,可以让中间件更好的的处理动态内容。
读写分离:配合缓存能加大关键字命中率 。
水平分库:表数据过多可以根据关键字分区。
垂直分库:有些数据不是很长用,但是占用的字节又很多,可以分割一下,等使用的时候再关联,这样可以减少查询时间,看过robbin的文章,iteye也经历过这个过程。
分布式存储:业务分离,跨平台,更好的利用外部资源。
缓存:能够大幅度降低DB IO的次数。
缓存一般分:
页面缓存:多存储一些图片 js css等静态的东西
服务器缓存:自定义比较多,使用一些现有的集合框架,像MAP List等等存储在session中
数据库缓存:oracle等自带
专用缓存: memcache,OSCache等
专用缓存位于服务器与数据库之间,如memcache,它是单线程,根据字节长度把内存划分为不同的段,这样虽然会降低内存利用率。但是会很高的提高数据命中率,查询复杂度为O(1).
分享到:
相关推荐
Linux性能调优是系统管理员和开发人员优化Linux系统性能的重要技能。它涉及对系统资源和应用程序的分析、监控、和调整,以实现更高的效率和响应速度。本篇学习笔记详细介绍了性能分析的步骤、优化工具、性能指标的...
### MySQL性能调优与架构设计的关键知识点 #### 一、MySQL概述 - **MySQL Server简介** - **定义**: MySQL是由MySQL AB公司(现已被Oracle收购)开发的一款开放源代码的关系型数据库管理系统(RDBMS)。 - **特点*...
《DB2 SQL性能调优秘笈》是一本深入探讨如何优化DB2数据库系统中SQL查询性能的专业书籍。作者Tony Andrews是DB2领域的专家,他在这本书中分享了丰富的经验和实用技巧,帮助读者解决在实际工作中遇到的性能瓶颈问题。...
《深入理解Java虚拟机》是一本深度探讨Java虚拟机(JVM)的著作,涵盖了JVM性能调优、内存模型以及虚拟机原理等多个关键领域。本文将基于这些主题,详细阐述其中的重要知识点。 首先,我们要了解Java虚拟机(JVM)...
### Weblogic性能调优详解 #### 一、引言 Weblogic作为一款广泛使用的应用服务器,其性能调优是确保企业级应用高效稳定运行的关键环节。本文将基于中软融鑫作者李先林于2008年分享的经验,深入探讨Weblogic性能...
Android 性能调优方面总结 Android 性能调优是 Android 应用程序开发中非常重要的一方面。为了提高 Android 应用程序的性能,需要从多方面考虑,包括设计思想、代码质量优化、设计模式、数据结构等。下面我们就...
性能调优是确保Teamcenter高效运行的关键环节,尤其在处理大量数据和并发用户时更为重要。本文档将重点讨论如何对Teamcenter进行性能优化,包括FMS(File Management System)、Oracle数据库以及转换工具的相关知识...
性能调优是确保Informatica项目高效运行的关键部分,特别是对于初学者来说,了解并掌握这些调优技术至关重要。以下将从多个方面详细解释如何对Informatica进行初级性能调优。 首先,要理解性能调优的宏观概念。这些...
Hive性能调优是一个复杂但关键的环节,涉及对Hive的参数配置以及针对应用程序的设计与开发进行优化。Hive是一个数据仓库基础工具,用于将结构化数据映射成数据库表,并通过HiveQL(简称HQL)查询语言执行数据处理...
《DB2 SQL性能调优秘笈》是一本专注于DB2数据库管理系统中SQL查询优化的专业书籍,作者是(美)Tony Andrews。这本书对于DB2数据库管理员、数据库开发人员以及对数据库性能有深度需求的IT专业人士来说,是极具价值的...
Spark性能调优是大数据处理领域中的一个重要话题,它涉及到如何最大化地利用计算资源,提高数据处理的速度和效率。以下是对Spark性能调优的一些关键知识点的详细解析: 1. **资源调度与分配**:Spark默认使用的是...
MySQL性能调优与架构设计是数据库管理领域中的一个重要主题,主要关注如何提升MySQL数据库的运行效率,优化查询性能,以及构建高效稳定的数据架构。简朝阳的这本书提供了详细的指南,包括了理论知识和实践技巧,旨在...
### DB2查询性能调优详解 #### 一、引言 在数据库管理领域,IBM的DB2是一款功能强大且广泛使用的数据库管理系统。特别是在大型企业和关键业务应用中,DB2因其高性能、高可用性和强大的数据处理能力而备受青睐。...
### 性能调优方案Arthus:一次真实的性能调优实践与探索 #### 一、性能调优的必要性及难点 **1.1 性能满足业务需求** 随着互联网技术的发展,用户对系统的响应速度、稳定性等性能指标提出了更高的要求。例如,在...
【Informatica 性能调优】 性能调优是提升系统效率的关键环节,尤其在IT行业中,确保工具如Informatica的高效运行至关重要。Informatica性能调优旨在消除系统中的性能瓶颈,以实现整体性能的最佳状态。这一过程通常...
Oracle 性能调优大全 Oracle 是一个功能强大的关系数据库管理系统,但是随着数据库的增长,性能问题开始变得越来越重要。为此,我们需要对 Oracle 进行性能调优,以提高数据库的响应速度和效率。下面是 Oracle ...
每个案例都详细展示了如何在实际业务场景中运用Spark,以及如何针对特定问题进行性能调优。 通过学习这套《Spark大数据商业实战三部曲》,开发者可以提升在大数据处理、实时分析和机器学习等方面的能力,为商业决策...