有一台服务器,CPU是1G,内存是512M,配置很低了。在上面运行着几个asp的站点,还有一个jboss的应用,此外,在jboss里还运行着一个 xplanner。不过jboss的前端没有apache服务器,用户直接访问jboss。就是这么一个服务器,发现jboss的应用访问的时候特别的 慢。到底是什么原因?
经过多次测试发现,程序的处理速度不是问题,问题在于页面显示需要大量的时间。因为在页面中hidden了许多变量,难道是这些hidden变量导致了页 面信息过多,所以显示慢?这也很难成立,因为在许多其他的应用了,hidden的信息更多,也没有这么慢的情况。
最后,推测可能的原因就是缺少apache的缘故。那么前端为什么需要一个apache?在网上找了一些,又问了许多人,都是仅仅知道一个模糊的概念,没有人从根本上说明为什么大部分的应用都需要在前端放置一个apache。
不过,个人猜测或许jboss提供的http服务性能太差,而apache可以弥补这一点。不管怎么样,还是先试验一下。按照文档,将jboss 和 apache进行了整合。然后测试速度,结果发现:响应时间提高了很多倍!
因为之前没有真正地架设过站点,所以一直以为有没有apache这样的web服务器是无所谓的,今天终于发现,区别是如此的大。原因还没有从根本上找到答案,但至少可以确定,application server的http服务,是不能用在产品环境里的。
本文介绍在Win2k环境下,用modjk1.2.x集成Jboss、Tomcat和Apache;文章最后用一jsp文件测试了该集成环境。
1.1 主要步骤
①下载集成Tomcat的Jboss、Apache和modjk1.2.x。
②修改Apache中的配置文件httpd.conf。
③在Apache中创建新文件workers.properties。
④在Apache中创建新文件uriworkermap.properties。
⑤重新启动Apache。
⑥修改Jboss中的server.xml和jboss-service.xml文件。
⑦启动Jboss Application Server。
1.2 详细说明
1.2.1 软件的下载和安装
本文所用的软件版本为:j2sdk1.4、Jboss3.2.7、Apache2.0和mod_jk-1.2.14。jdk的下载,安装和配置本文不再多说,用过java语言的人肯定都知道。
①集成Tomcat的Jboss的下载
② Apache的下载
③ 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>
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
作者:蔡晓均
版权所有,转摘请注明:摘自www.blogjava.net/neptune
相关推荐
阿里巴巴Java性能调优实战(2021华山版) 本资源摘要信息来自阿里巴巴Java性能调优实战(2021华山版),旨在帮助Java开发者掌握性能调优的实战经验和技术。 性能调优的重要性 性能调优是软件开发中一个非常重要的...
SAP ABAP 程序性能调优介绍 SAP ABAP 程序性能调优是指通过对程序的优化来提高 SAP 系统的性能。性能调优是 SAP 系统管理员和开发人员的重要任务之一,因为它可以直接影响到用户的体验和业务的效率。 用户交互过程...
### DB2 SQL性能调优秘笈 在数据库领域,IBM DB2因其稳定性和高效性而备受推崇,尤其是在大型企业级应用中。对于DB2数据库管理员(DBA)来说,掌握有效的SQL性能调优技巧至关重要。这不仅能提升系统的响应速度,还...
算法部分讨论了排序算法和查找算法,这是性能调优中不可或缺的部分,尤其是在处理大量数据时。 在程序性能优化章节中,文档详细分析了启动速度与执行效率的优化、布局检测与优化、内存优化、耗电优化、网络传输与...
Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优
平均负载是评估系统当前工作量的重要指标,它反映了在测量周期内处于可运行状态或不可中断状态的平均进程数。系统中CPU的负载过高可能意味着存在CPU密集型进程或I/O性能问题,这时我们可以使用stress工具来模拟负载...
Oracle 性能调优的基本方案 Oracle 性能调优是数据库管理员和开发者非常关心的问题。为了确保数据库的高效运行,需要对 Oracle 性能进行调优。本文将对 Oracle 性能调优的基本方案进行概述,并介绍了该方案的八个...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...
MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计
资源名称:DB2 SQL性能调优秘笈资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
阿里巴巴Java性能调优实战
"MySQL性能调优与架构设计.pdf" 本资源摘要信息是关于 MySQL 数据库软件的性能调优和架构设计的知识点。MySQL 是一个流行的开源数据库管理系统,具有简单高效可靠的特点,广泛应用于各个行业。以下是从给定的文件中...
在当今信息技术快速发展的时代背景下,Java作为一门广泛使用的编程语言,其开发规范和性能调优成为了提升开发效率和保证系统稳定性的关键。阿里巴巴作为全球领先的科技企业,在Java开发和性能调优方面积累了丰富的...
标题《JVM系列之性能调优参考手册(实践篇)》涉及的知识点主要集中在Java虚拟机(JVM)性能调优的实践操作。JVM作为Java程序运行的基础环境,对程序性能有着决定性影响。本手册的目的是指导开发者如何对JVM进行性能...
MySQL性能调优与架构设计 PDF图书MySQL性能调优与架构设计 PDF图书
Java性能调优 6步实现项目性能全面升级+面试高频性能问题讲解视频教程分享,性能优化的N种企业级解决方案,囊括了【数据库优化】、【Tomcat优化】、【JVM优化】、【垃圾回收】、【Netty优化】、【Nginx优化】、...
例如,了解CPU和内存的管理机制、操作系统的调度策略、网络通信的效率问题,以及数据库的索引优化等,这些都是性能调优不可或缺的部分。 作者随后提出了一套系统的调优方法论,他将Java性能调优分为七大模块,...