`

关于网站性能问题解决

阅读更多
症状:运行一段时间后,通过jconsole查看内存占用。发现内存占用很高。用不了一两天,就报内存溢出。
解决过程:
A.通过review程序,看是否有重大错误.(代码review后,未发现重大问题)
B.通过jprofile 和 jmater对某些页面左性能测试.暴露了一些问题.过滤器,中对图片也进行编码.
C.后来还是有内存溢出的问题.
所以再用jprofile 查. 看不出问题. char[] 占用非常大200多M.
D.之后通过使用Memory Analyzer tool(MAT)工具,分析内存,终于找到问题的根本.
因为访问tomcat目录未被限制访问,访问后tomcat会把目录下所有文件显示出来,如果文件上万,那么这个页面相当大.访问一下,内存就飙升.通过MAT发现这个页面占用200多M.
将tomcat的/conf/web.xml 中的
<init-param> 
            <param-name>listings</param-name> 
            <param-value>true</param-value> 
</init-param>
true 设置为false.就可以了.
问题解决.

tomcat 的启动文件catalita.bat中增加 下面的配置文件
set JAVA_OPTS=-Xms400M -Xmx800M  -XX:PermSize=128M -XX:MaxPermSize=256m -verbose:gc -Xloggc:../logs/gclog.log -

XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError

%JAVA_OPTS%

增加 -XX:+HeapDumpOnOutOfMemoryError 这句.如果系统内存溢出的时候,将会将内存dump到
java_pid3159.hprof文件.
然后使用mat进行分析.


相关资料:
[url=http://www.blogjava.net/rosen/archive/2011/01/26/321575.html]使用Memory Analyzer tool(MAT)分析内存泄漏(一)
[/url]
[url=http://www.cnblogs.com/wangtianxj/archive/2010/10/19/1855751.html]使用Memory Analyzer tool(MAT)分析内存泄漏(二)
[/url]


jvm参数配置说明:
JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

详细设置为:
%EIO_JRE_HOME%/bin/java -Xms512m -Xmx1024m -XXermSize=128m -XX:NewSize=64m -XX:MaxNewSize=128m -XX:NewRatio=3 -XX:SurvivorRatio=6? -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=40 -Xverify:none -Dsun.java2d.ddlock=true -Dsun.awt.noerasebackground=true -Dswing.aatext=true -jar %EIO_HOME%/EIOffice.jar



=============================================
1.{tomcat_home}\bin\catalina.sh ||catalina.bat
JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.timezone=GMT+8” (LINUX)
JAVA_OPTS=%JAVA_OPTS% -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.timezone=GMT+8 (WINDOWS)
2.
实际项目中一般是用utf-8的,而Tomcat的默认编码则是iso-8859-1,
因此我们通常编辑conf/下的server.xml,配置Connector项,加上属性URIEncoding="UTF-8"即可。
<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

3.使用filter来进行过滤;
可做如下参考:http://old.nabble.com/change-server-default-enconding--Where-to-set-JAVA_OPTS-in-catalina.sh-for-UTF8--td6735363.html


===================================================
设置环境变量。
#vi /etc/profile
在最后面加入
# java ......................
JAVA_HOME=/usr/java/jdk1.5.0_08/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib.dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
按esc
:wq

3.用户使用
vi /etc/profile.d/java.sh
JAVA_HOME=/usr/java/jdk1.5.0_08/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib.dt.jar
PATH=$JAVA_HOME/bin:$PATH
JAVA_OPTS="-server -Xmx768m -XX:MaxNewSize=512m -XX:MaxPermSize=700m"
CATALINA_OPTS="-server -Xmx768m -XX:MaxNewSize=512m -XX:MaxPermSize=700m"
export JAVA_HOME CLASSPATH PATH JAVA_OPTS CATALINA_OPTS
保存退出
按esc
:wq

chmod 755 /etc/profile.d/java.sh

4.执行所有的命令
source /etc/profile
source /etc/profile.d/java.sh

------------------查看liunx版本-----------------------------
cat /proc/version
分享到:
评论

相关推荐

    大型网站性能优化实战

    《大型网站性能优化实战:从前端、网络、CDN到后端、大促的全链路性能优化详解》既可供入门者了解大型网站性能优化所有的相关技术,以及解决问题的思路和方法,也可供业界同行参考,给日常工作带来启发。

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 带书签完整版

    ### 大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 #### 一、基于用户体验的性能优化要素 在现代互联网应用中,用户体验是衡量一个网站成功与否的重要标准之一。良好的用户体验不仅仅体现在美观的...

    网站性能要求.pdf

    本文将深入探讨网站性能测试的主要指标,包括Web服务器指标、数据库服务器性能指标,以及如何识别和解决系统的瓶颈问题。 首先,Web服务器指标是衡量网站性能的基础。常见的Web服务器指标包括日访问量、常用页面...

    网站性能优化解决方案研究

    本文主要根据现代 WEB服务器的体系架构并结合作者多年网站建设实践经验分别从服务端、客户端、服务器配置和数据通讯压缩等多种不同角度提出了改进网站访问速度, 安全性, 可靠性和稳定性等性能的方法, 并对各方案进行...

    web网站性能测试工具

    ### Web网站性能测试工具知识点详解 #### 一、性能测试的重要性及目的 在当今高度数字化的时代,Web网站作为企业和组织对外展示的重要窗口之一,其性能好坏直接影响到用户体验、品牌形象甚至是企业的经济收益。...

    高性能网站建设指南.pdf

    实时监控网站性能,分析日志文件,可以帮助网站维护者及时发现并解决性能瓶颈。 8. 缓存策略 实现有效的缓存策略可以减少服务器负载,提升网站响应速度。浏览器缓存、内容分发网络(CDN)缓存和应用层缓存都是常用...

    实用负载均衡技术:网站性能优化攻略

    负载均衡技术是现代网络架构中用于提高网站性能和可靠性的关键技术之一。通过分散单个服务器的请求负载,负载均衡能够优化资源使用、最大化吞吐量、减少响应时间,并确保重要的应用不会因为过载而崩溃。在本文中,...

    高性能网站建设指南.part1.rar

    本书结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和...

    大规模网站性能优化方法-高性能网站性能优化

    1. **性能监控**:实时监控服务器资源使用情况,如CPU、内存、磁盘I/O,及时发现并解决问题。 2. **日志分析**:收集并分析日志,了解系统运行状况,找出性能瓶颈。 3. **A/B测试**:通过对比不同优化策略的效果,...

    XOIC 网站性能测试工具

    **XOIC 网站性能测试工具** XOIC 是一款强大的网站性能测试工具,专为评估和优化网络服务的响应速度与稳定性而设计。它涵盖了多种协议的支持,包括HTTP、TCP、UDP以及ICMP,这使得它在测试各种类型的网络应用和服务...

    高性能网站建设实战

    4. **网站性能优化**:包括前端优化(如减少HTTP请求、压缩代码和图片、使用缓存、优化CSS和JavaScript)和后端优化(如数据库查询优化、使用异步处理、数据缓存)。页面加载速度直接影响用户满意度,因此性能优化是...

    《大型网站技术架构演进与性能优化》

    7. 监控与调优:实时监控系统性能,及时发现并解决问题,通过A/B测试、灰度发布等手段持续优化。 三、架构设计原则 1. 可扩展性:设计时考虑未来可能的增长,使系统能够平滑地添加新功能或处理更多用户。 2. 高...

    高性能网站建设进阶指南 WEB开发者性能优化最佳实践 + 高性能网站建设指南

    这两本指南——《高性能网站建设指南》和《高性能网站建设进阶指南:WEB开发者性能优化最佳实践》将为我们揭示解决这些问题的关键策略。 首先,我们来探讨《高性能网站建设指南》中的核心概念。这本书强调了“速度...

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化

    总的来说,大型网站性能优化是一个全面而细致的过程,涉及到前端、网络、后端和运维等多个层面。只有深入理解每一个环节,才能构建出高性能、高可用的大型网站,确保用户在任何情况下都能获得流畅的体验。

    大型网站性能优化.doc

    【大型网站性能优化】是网站运营中的核心议题,旨在提高用户体验和系统稳定性。优化策略主要集中在以下几个方面: 1. **HTML静态化**:静态HTML页面是网页性能优化的基础,因为它们加载速度快,服务器资源消耗低。...

    高性能网站建设指南(pdf).part2

    《高性能网站建设指南》结合Web2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、...

    性能优化-高性能网站建设指南

    网站性能的优劣直接影响到用户体验的好坏,进而影响网站的流量和业务成果。因此,对于网站管理员和开发人员来说,了解并掌握高性能网站建设的方法至关重要。本篇指南将深入探讨Web前端性能优化的相关知识点,帮助您...

    高性能网站建设指南

    《高性能网站建设指南》结合Web2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、...

    《构建高性能可扩展ASP.NET网站》源码

    迅速提升网站性能,全面挖掘网站潜力 微软资深技术专家力作,亚马逊全五星评价 本书针对ASP.NET 网站开发中可能遇到的问题,给出了经过实践检验的具体解决方法。涉及的内容包括:加快显示HTML 的方法、缓存的最佳...

    大型网站性能监控,测量和故障排除

    大型网站性能监控是指通过一系列的工具和技术手段,对网站的性能指标进行实时或定期的监测,以便及时发现性能瓶颈或者故障。性能监控的目的是为了确保网站可以承载大量的用户访问,同时保持快速的响应速度和稳定的...

Global site tag (gtag.js) - Google Analytics