`
haiyang
  • 浏览: 70925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

性能的调优,不可忽视的教训(转)

阅读更多

    有一台服务器,CPU是1G,内存是512M,配置很低了。在上面运行着几个asp的站点,还有一个jboss的应用,此外,在jboss里还运行着一个 xplanner。不过jboss的前端没有apache服务器,用户直接访问jboss。就是这么一个服务器,发现jboss的应用访问的时候特别的 慢。到底是什么原因?

  1.     有可能是程序的问题。
        但是程序在开发环境运行的时候,速度没有任何问题。即使在服务器上,通过log也可以看出来,后台的处理速度
        很快,但是在客户端显示页面却非常慢。
  2.     有可能是服务器性能的问题。
        但是其他的j应用则没有问题。

    经过多次测试发现,程序的处理速度不是问题,问题在于页面显示需要大量的时间。因为在页面中hidden了许多变量,难道是这些hidden变量导致了页 面信息过多,所以显示慢?这也很难成立,因为在许多其他的应用了,hidden的信息更多,也没有这么慢的情况。

    最后,推测可能的原因就是缺少apache的缘故。那么前端为什么需要一个apache?在网上找了一些,又问了许多人,都是仅仅知道一个模糊的概念,没有人从根本上说明为什么大部分的应用都需要在前端放置一个apache。

    不过,个人猜测或许jboss提供的http服务性能太差,而apache可以弥补这一点。不管怎么样,还是先试验一下。按照文档,将jboss 和 apache进行了整合。然后测试速度,结果发现:响应时间提高了很多倍!

    因为之前没有真正地架设过站点,所以一直以为有没有apache这样的web服务器是无所谓的,今天终于发现,区别是如此的大。原因还没有从根本上找到答案,但至少可以确定,application server的http服务,是不能用在产品环境里的。

附录一下 jboss 和  apache整合的文档:

本文介绍在Win2k环境下,用modjk1.2.x集成JbossTomcatApache;文章最后用一jsp文件测试了该集成环境。
1.1 主要步骤
下载集成TomcatJbossApachemodjk1.2.x
修改Apache中的配置文件httpd.conf
Apache中创建新文件workers.properties
Apache中创建新文件uriworkermap.properties
重新启动Apache
修改Jboss中的server.xmljboss-service.xml文件。
启动Jboss Application Server
1.2 详细说明
1.2.1 软件的下载和安装
本文所用的软件版本为:j2sdk1.4Jboss3.2.7Apache2.0mod_jk-1.2.14jdk的下载,安装和配置本文不再多说,用过java语言的人肯定都知道。
集成TomcatJboss的下载
http://www.jboss.com/downloads/index下载Jboss。将Jboss安装到c:\javaApp目录下。
Apache的下载
http://httpd.apache.org/下载Apache2.0。将Apache安装到c:\javaApp目录下。
modjk的下载
下载mod_jk。把mod_jk-1.2.x.so文件拷贝到Apache2\modules目录下。
1.2.2 httpd.conf文件的修改
打开Apache2\conf目录下的httpd.conf文件,找到其中的LoadModule,然后在LoadModule的最后一行,加上下面的代码:
# Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module modules/mod_jk-1.2.14.so
再在httpd.conf文件的最后,加上下面的代码:
# Where to find workers.properties
JKWorkersFile conf/workers.properties
# Where to put jk logs
JKLogFile logs/jk.log
# Set the jk log level [debug/error/info]
JKLogLevel normal
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicates to send SSK KEY SIZE
#JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories
# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"
# Mount your applications
JKMount /web_application/* node1
JkMount /web-console/* node1
JkMount /jmx-console/* node1
# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
JkMountFile conf/uriworkermap.properties
# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
# If there’s no this file under logs directory, create it manually.
JkShmFile logs/jk.shm
# Add jkstatus for managing runtime data
<location></location>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
   
1.2.3 创建workers.properties文件
Apache2\conf目录下创建一新文件workers.properties,文件包含下面的内容:
# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status
# Define Node1
worker.node1.port=8009
# You can modify the Ip address to the actual Ip address
worker.node1.host=127.0.0.1
worker.node1.type=ajp13
worker.node1.lbfactor=1
#worker.node1.local_worker=1 (1)
worker.node1.cachesize=10
# Define Node2
worker.node2.port=8009
# You can modify the Ip address to the actual Ip address
worker.node2.host= 127.0.0.1
worker.node2.type=ajp13
worker.node2.lbfactor=1
#worker.node2.local_worker=1 (1)
worker.node2.cachesize=10
# Load-balancing behavior
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1, node2
worker.loadbalancer.sticky_session=1
worker.loadbalancer.local_worker_only=1
worker.list=loadbalancer
# Status worker for managing load balancer
worker.status.type=status
1.2.4 创建uriworkermap.properties文件
Apache2\conf目录下创建一新文件uriworkermap.properties,文件包含下面的内容:
# Simple worker configuration file
# Mount the Servlet context to the ajp13 worker
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer
# You should modify the “web_application” to
# the real name of the web application
/ web_application =loadbalancer
/ web_application /*=loadbalancer
做完上面的所有步骤后,重新启动Apache
1.2.5 修改Jboss中的server.xml和jboss-service.xml文件
打开jboss-3.2.7\server\default\deploy\jbossweb-tomcat50.sar目录下的server.xml文件。
<engine defaulthost="localhost" name="jboss.web"></engine>修改为:
<engine defaulthost="localhost" name="jboss.web"></engine>
jvmRoute="node1">
因为集成Apache后,由Apache来处理Http请求,所以可以把下面的代码注释掉:
<connector address="${jboss.bind.address}" port="8080"></connector>
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
打开jboss-3.2.7\server\default\deploy\jbossweb-tomcat50.sar\
META-INF目录下的jboss-service.xml文件。
<attribute name="UseJK">false</attribute>修改为:
<attribute name="UseJK">true</attribute>
启动Jboss,在IE浏览器中输入http://127.0.0.1/web-console,如果配置成功,将显示Jbossweb管理页面。
1.3 测试jsp文件
jboss-3.2.7\server\default\deploy目录下新建一个helloworld目录,然后在helloworld目录下新建一个hello.war目录。在hello.war目录下创建一个test.jsp文件,文件代码如下:
<%
String helloworld = "Hello world!";
out.println(helloworld);
%>
修改uriworkermap.properties文件,添加下面的代码:
/hello=loadbalancer
/hello/*=loadbalancer
修改httpd.conf文件,添加下面的代码:
JKMount /hello/* node1
打开IE,输入http://127.0.0.1/hello/test.jsp,页面将显示出
Hello world!

作者:蔡晓均
版权所有,转摘请注明:摘自www.blogjava.net/neptune
分享到:
评论

相关推荐

    SQL性能调校.pdf

    **描述解析:** 描述部分强调了SQL性能调校作为解决性能瓶颈、提升系统效率的关键手段,是IT人员不可或缺的技能。通过有效的调校,可以发现并解决隐藏的性能问题,使数据库系统更加健壮。 **标签解析:** “SQL性能...

    Database Tuning-Principles, Experiments, and Troubleshooting Techniques

    故障排除是数据库管理中不可忽视的一环,第7章“故障排除”会介绍诊断性能问题、分析系统瓶颈的技巧和工具。通过对系统日志、监控数据的分析,定位并解决问题是维护数据库健康运行的关键。 随着电子商务的兴起,其...

    数据库大迁徙:从SQL Server到MySQL的蜕变之路.zip

    性能调优是数据库迁移后不可忽视的一个步骤。书中详细讲解了如何根据MySQL的架构特点进行优化,包括索引优化、查询优化、存储引擎选择等,确保迁移后的数据库能够达到预期的性能指标。此外,作者还分享了在迁移过程...

    大型高性能网站的10项规则

    - **问题背景**:安全性问题是构建任何系统时都不可忽视的重要因素,尤其是在互联网环境中。攻击者可以通过各种手段获取敏感信息或破坏系统。 - **解决方案**: - **防火墙配置**:除了使用硬件防火墙(如Cisco ASA...

    唯品会日志平台建设

    - 系统的容错性设计是不可忽视的,因为所有的程序都可能出现故障; - 用户体验同样重要,易用性的好坏直接影响到系统的实际使用效果。 对于日志平台的建设,需要综合考虑技术选型、性能调优和用户体验等多方面的...

    数据仓库之理论与实践

    数据仓库的体系架构是其理论基础和实践操作中不可忽视的一部分。体系架构的设计涉及数据源、数据集成层、数据存储层以及数据展现层。数据源通常指的是企业内部各个部门的操作系统,它们是数据抽取的起点。数据集成层...

    项目总结文档

    在IT行业中,项目总结文档是每个开发团队在项目完成后不可或缺的一部分。它不仅是对已完成工作的记录,更是团队学习和进步的宝贵资源。通过分析项目过程中的经验教训,我们可以避免在未来重复相同的错误,提高效率,...

    三甲医院医疗行业信息化建设参考精选合集.docx

    数据安全是医院信息化建设中不可忽视的一环。为了保护患者隐私和医疗数据的安全,大型三甲医院的核心系统集成架构需要采取一系列措施,如采用先进的加密技术、实施严格的权限管理、建立完善的安全策略等。 #### ...

    毕业设计论文Java+SpringBoot景区民宿预约系统.doc

    因此,系统性能优化也是系统开发中不可忽视的一环,需要根据实际情况进行适当的性能调优。 59. 系统的生命周期管理:系统从开发、部署到维护,再到最终的退役,都应纳入系统的生命周期管理,以保证系统整个生命周期...

Global site tag (gtag.js) - Google Analytics