`
FansUnion
  • 浏览: 153227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个Web报表项目的性能分析和优化实践(三) :提高Web应用服务器Tomcat的内存配置,并确认配置正确

 
阅读更多

摘要

上一篇,一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间 ,讲述了项目优化的整体背景,重点讲述了统一显示了Web项目SQL语句的执行时间。

本篇,将重点介绍提高Web应用服务器Tomcat的内存配置,并确认配置正确的方法。

背景

这个Web报表项目,用的Linux系统,Web应用服务器使用的是Tomcat7.0。

根据已有程序开发的经验,我认为手动分配和提高Tomcat的内存,能够降低Web请求响应时间,提高系统的性能。

手动提高Tomcat内存前后的响应时间,没有记录和进行对比,因此“提高了系统的性能”现在只能算是一种“感觉”。

实际提升了多大幅度的性能,还需要有真实数据进行对比才能知道。

本文,不再探讨此问题,重点阐述如何配置Linux下的Tomcat的内存。

1.配置方法

Linux系统

在/usr/local/tomcat/bin 目录下的catalina.sh添加:

JAVA_OPTS='-Xms512m -Xmx1024m'
要加“m”说明是MB,否则就是KB了,在启动tomcat时会 报内存不足。

-Xms:初始值
-Xmx:最大值
-Xmn:最小值

注:Tomcat的路径可能有所不同。

catalina.sh

# -----------------------------------------------------------------------------(上面还有很多#开头的注释)

# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS= ‘-Xms512m -Xmx1024m’
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac

Windows系统
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m

经验教训

Linux下的配置方法和Windows下的是不一样的。

这类问题是很常见的,总结成文,而不是放在大脑里,很有必要。

2.查看Tomcat的内存配置

如果,我们只是根据自己的或者网友的方法,配置了参数,就认为“万事大吉”,是非常不科学的,是不负责任的表现。

Tomcat完整的压缩包中,webapps目录含有manager这个项目。

比如C:\apache-tomcat-7.0.22\webapps\manager

我们Linux系统的项目中,已经把这个模块删除了。

现在,重新拷贝这个模块到Tomcat的webapps目录。

第一次访问的时候,没有权限。

需要修改tomcat的conf目录下的tomcat-users.xml这个配置文件,增加以下配置

<tomcat-users>

<role rolename="manager-gui"/>

<user username="username" password="123456" roles="manager-gui"/>

</tomcat-uses>

然后,使用配置的用户名和密码,访问 http://ip:port/manager

点击Server Status 超链接,或者直接访问 http://ip:port/manager/status

可以看到以下信息

TomcatServerStatus

看到“Free memory: 268.18 MB Total memory: 970.18 MB Max memory: 1758.25 MB”才真正表明,我们的配置成功了。

3.真相何在

细心的读者可能会发现,“Free memory: 268.18 MB Total memory: 970.18 MB Max memory: 1758.25 MB”与我们配置的‘-Xms512m -Xmx1024m’不完全吻合。
从上面的参数中,我们只能知道Tomcat的内存确实增大了,但是增大的规则和我们预期的不完全一样。

Total memory和Max memory等具体表示啥含义,为什么会是这样,我现在还不是很清楚。

这个问题暂时不再深究,今后,再看Tomcat的书籍和文档,可能能够找到这个问题的答案。

知道的同学,可以留言告诉我下。

4.回答一个热心网友的评论

评论内容

我没有仔细看你写的代码,但是看你的标题之后,我处理的流程会是:
在程序没有错的情况下,
一、看hql语句是否被滥用了,该用select col from table的写成select * from table了
二、看where子句的执行顺序,一般最后面的条件是过滤掉大部分数据的条件,以次类推。看看是否改用join的地方使用了select col from table where col in (select ...)的语句,检查视图的sql语句
三、给表的列适当建立索引
四、再高级一些的就是读写分离或者mysql集群了(我也木有搞过)

--评论参见:http://blog.csdn.net/fansunion/article/details/13620783

我的回复

1."该用select col from table的写成select * from table了"
查询了过多的字段,这种情况是存在的。
这个晚点优化。
2.看where子句的执行顺序。
咱们用的大多数 关联查询,很少用子查询。
这个晚点优化。

3.给表的列适当建立索引。
这个是本周的重点。
我们有一个数据库,全是数据和维度,有数据更新的时候,才会插入。
索引会比较有效。
4.读写分离或者mysql集群。
等正式上线,数据量大了之后,应该会弄。
我也不熟悉,需要边学边用,不会的就去问boss或者公司相关大牛。

相关阅读

一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间

一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例

原文参见http://FansUnion.cn/articles/3019

分享到:
评论

相关推荐

    快逸报表软件-免费、快速开发WEB报表的JAVA报表工具

    快逸报表设计器是一个类似Excel使用环境的WEB报表设计与开发平台, 它自带报表运算引擎,连接数据库后即可展示报表效果,从最初的数据组织到前段的报表格式调整等工作都在这一环境中完成,设计完的报表模板将以RAQ的...

    Web应用开发大型实验网上书店系统

    结合关系数据库管理 设计并实现基于MVC架构的小型电子商务网站或简单的信息管理系统 以提高对WEB应用系统的分析设计能力和解决实际问题的能力 二 实验环境和内容 1 实验环境 (1)操作系统: WindowsXP或Win7或...

    Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat).zip

    自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.4 JavaWeb应用的Web服务器Tomcat 1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇总 1.4.3 获取Tomcat 1.4.4 熟悉Tomcat的五脏六腑 1.5 JavaWeb开发利器之Eclipse 1.5.1 获取Eciipse 1.5.2 运行Eclipse 1.5.3 ...

    jsp 制作报表 统计图 web服务器

    本报表模块是基于eclipse birt智能报表软件而制作的,web服务器为Tomcat6.0报表和struts2集成web.xml文件里有许多参数,用户应该根据自已的需求出发对这些参数有一个深入的了解。下面我会对这些参数一一做以说明。

    Java项目源码_ssm_进销存管理系统.rar

    **Java项目源码_ssm_进销...总之,本资源为一个功能完善、易于定制的进销存管理系统,适合Java开发者学习和实践。通过对本资源的学习和应用,开发者可以快速掌握SSM框架的使用方法,提高自身的开发能力和项目实施效率。

    Smart-Report报表工具-JAVA v1.0.rar

    Smart-Report报表工具支持常规的BI应用——报表制作(报表、图形),分析与信息发布; 提供强大的开发环境和易于维护的报表; 掌握该工具门槛比较低,通过简单培训就能掌握; 数据安全性的统一控制; 通过开放的...

    Excel报表服务器

    由于文件比较大,请根据文档里的地址下载 ... Excel Report Builder Excel报表服务器 Excel Report 万能报表平台... 服务器端:Windows和Linux都可以,j2re1.4,tomcat5 数据库:支持Oracle, SQL Server,MySQL 等数据库。

    JAVA上百实例源码以及开源项目源代码

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    服务器架构ppt.pptx

    WebFOCUS ArchitectureArchitecture Diagram – Standard Configuration 注解:以上服务器为逻辑架构,并不是真正的服务器 Web Server Servlet Container Reporting Server Distribution Server ORA DB2 SQL JDBC ...

    JAVA上百实例源码以及开源项目

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    Java家庭理财系统源码.zip

    静态web服务器:Nginx-1.14.2 应用服务器:apache-tomcat-8.5.59 关系型数据库:mysql-5.7.30 非关系型数据库:redis-6.0.8 开发语言版本:java 1.8.0_251 应用框架版本:Spring Boot- 2.0.7、SpringCloud-...

    [计算机毕业设计]基于SSM的基于数据元标准的教材征订管理系统(源码+部署说明+演示视频).zip

    * 在Tomcat或Jetty等服务器上部署项目,配置相关参数(如端口号、数据库连接信息等)。 5. 演示视频: 本项目提供了一段演示视频,展示了平台的基本功能和使用方法。观看视频可以帮助用户更直观地了解项目的实现...

    java开源包8

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    基于ssm+Vue的新冠疫苗接种管理系统(源码+部署说明+系统介绍+数据库).zip

    将生成的jar包部署到Web服务器(如Tomcat、Jetty等)上,并启动项目。f. 根据实际需求,修改前端Vue.js代码以实现所需的功能。系统介绍:该系统具有以下主要功能:a. 用户管理:管理员可以添加、编辑和删除用户,设置...

    java开源包1

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包11

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包2

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包3

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

Global site tag (gtag.js) - Google Analytics