JBoss 介绍

启动JBoss 时的JVM的各项参数介绍
  1. JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分:

    • 所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间;
    • 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等。

    然而虽然java的垃圾回收机制虽然能够很好的解决内存浪费的问题,但是这种机制也仅仅的是回收堆区的资源,而对于非堆区的资源就束手无策了,针对这样的资源回收只能凭借开发人员自身的约束来解决。就算是这样(堆区有java回收机制、非堆区开发人员能够很好的解决),当运行时所需内存瞬间激增的时候JVM无奈的也要中止程序的运行。所以本文讲述的是如何解决后者的问题。

    JAVA_OPTS=”-server -Xms1536m -Xmx1536m -XX:PermSize=96m -XX:MaxPermSize=256m -XX:NewSize=320m -XX:MaxNewSize=320m -Xmn500m -XX:MaxTenuringThreshold=5″

    • JAVA_OPTS并不是已成不变的,不同的应用、软硬件环境下,要想充分发挥应用的性能,这些参数里边的设置可是非常有技巧和具有经验积累的。
    • 首先,常见参数种类(配置内存):(-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn)、(-XX:PermSize、-XX:MaxPermSize)。可以从列举的方式上看出我的用意,参数的配置是分组的,前者是用来配置堆区的,后者是用来配置非堆区的。
    • 一般来讲对于堆区的内存分配只需要对上述两个参数进行合理配置即可,但是如果想要进行更加精细的分配还可以对堆区内存进一步的细化,那就要用到下面的三个参数了-XX:newSize、-XX:MaxnewSize、-Xmn。当然这源于对堆区的进一步细化分:新生代、中生代、老生代。java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。
参数解释
-server一定要作为第一个参数,在多个CPU时性能佳
-Xms初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmxjava heap最大值,使用的最大内存(上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。)
-XX:newSize表示新生代初始内存的大小,应该小于 -Xms的值;
-XX:MaxnewSize表示新生代可被分配的内存的最大上限;当然这个值应该小于 -Xmx的值;
-Xmn至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。
-XX: PermSize设定内存的永久保存区域
-XX:MaxPermSize设定最大内存的永久保存区域
-Xss 15120这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss每个线程的Stack大小
-verbose:gc现实垃圾收集信息
-Xloggc:gc.log指定垃圾收集日志文件
-Xmnyoung generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC缩短minor收集的时间
-XX:+UseConcMarkSweepGC缩短major收集的时间(提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。)
JBoss包结构介绍
1. JBoss 的目录结构说明
目录描述
bin启动和关闭 JBoss 的脚本( run.bat 为 windows 系统下的启动脚本,shutdown.bat 为 windows 系统下的关闭脚本)。
client客户端与 JBoss 通信所需的 Java 库( JARs )。
docs配置的样本文件(数据库配置等)。
docs/dtd在 JBoss 中使用的各种 XML 文件的 DTD 。
lib一些 JAR , JBoss 启动时加载,且被所有 JBoss 配置共享。(不要把你的库放在这里)
server各种 JBoss 配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。 JBoss 包含 3 个默认的配置: minimial , default 和 all ,在你安装时可以进行选择。
server/allJBoss 的完全配置,启动所有服务,包括集群和 IIOP 。
server/defaultJBoss 的默认配置。在没有在 JBoss 命令行中指定配置名称时使用。 ( 我们下载的 JBOSS5.0 Beta4 版本默认采用此配置 ) 。
server/default/confJBoss 的配置文件。
server/default/dataJBoss 的数据库文件。比如,嵌入的数据库,或者 JBossMQ
server/default /deployJBoss 的热部署目录。放到这里的任何文件或目录会被 JBoss 自动部署。EJB 、 WAR 、 EAR ,甚至服务。
server/default /lib一些 JAR , JBoss 在启动特定配置时加载他们。 (default 和 minimial 配置也包含这个和下面两个目录。 )
server/default/logJBoss 的日志文件。
server/default/tmpJBoss 的临时文件。
server/default/work存放的是JSP编译后的.java及.class文件,如果调试JSP时出错了,可以到该目录下(一级级去翻吧)去找对应的文件,调试问题。还有个小TIPS,有时我们明明把一个JSP更新到对应的目录里了,可是去刷新页面时,内容还是旧的,为了解决该问题,我们可以到work目录下,将对应的.java及.class文件删了,再刷新即可,这个原因不好推测,有时可以自动刷新,有时不行。单个的TOMCAT都能自动刷新,不知为何集成到JBOSS里却有时不行。还需注意的事,你在清除旧的java、class文件时,不能为了省事,而直接删除目录,否则刷新时会报错的,等着你的就是要重启JBOSS服务了。
2. “conf” 目​录​的​内​容​
文​件​描​述​
jboss-minimal.xml这​是 jboss-service.xml 配​置​文​件​的​最​简​单​夫​的​示​例​(它​是​在 minimal 配​置​文​件​集​里​使​用​的 jboss-service.xml)。​
jboss-service.xmljboss-service.xml 定​义​了​核​心​的​服​务​及​其​配​置​。​
jndi.propertiesjndi.properties 文​件​指​定​了​当 InitialContext 使​用​无​参​数​的​构​造​函​数​创​建​时​,在 JBoss 服​务​器​里​使​用​的 JNDI InitialContext 属​性​。​
jboss-log4j.xml这​个​文​件​配​置​了 Apache log4j 框​架​类​别​优​先​级​和 JBoss 服​务​器​代​码​使​用​的 appender。​
login-config.xml这​个​文​件​包​含​了​当​使​用​基​于 JAAS 的​安​全​性​时​适​用​的​服​务​器​端​验​证​配​置​的​样​本​。​
props/*props 目​录​包​含​了​用​于 jmx-console 的​用​户​和​角​色​属​性​文​件​。​
standardjaws.xml此​文​件​提​供​了​旧​的 EJB 1.1 CMP 引​擎​的​缺​省​配​置​。​
standardjboss.xml此​文​件​提​供​了​缺​省​的​容​器​配​置​。​
standardjbosscmp-jdbc.xml此​文​件​为 JBoss CMP 引​擎​提​供​了​缺​省​的​配​置​文​件​。​
xmdesc/*-mbean.xmlxmdesc 目​录​包​含​了 jboss-service.xml 文​件​里​配​置​的​服​务​的 XMBean 描​述​符​。​
3. “deploy” 目​录​的​内​容
文​件​描​述​
bsh-deployer.xml此​文​件​配​置​了​可​将 bean shell 脚​本​部​署​为 JBoss 服​务​的​部​署​者​。​
cache-invalidation-service.xml这​个​服​务​允​许​通​过 JMS 通​知​的 EJB 缓​存​的​自​定​义 invalidation。​它​缺​省​是​禁​用​的​。​
client-deployer-service.xml此​服​务​提​供​对 J2EE 应​用​程​序​客​户​端​的​支​持​。​它​为​基​于 application-client.xml 描​述​符​的​客​户​端​应​用​程​序​管​理 java:comp/env 企​业​命​名​上​下​文​。​
ear-deployer.xmlEAR 部​署​者​是​负​责​部​署 J2EE EAR 文​件​的​服​务​。​
ejb-deployer.xmlEJB 部​署​者​是​负​责​部​署 J2EE EJB JAR 文​件​的​服​务​。​
hsqldb-ds.xmlhsqldb-ds.xml 配​置 Hypersonic 嵌​入​式​数​据​库​服​务​。​它​设​置​嵌​入​的​数​据​库​和​相​关​的​连​接​工​厂​。​
http-invoker.sarhttp-invoker.sar 包​含​支​持​基​于 HTTP 的 RMI 的​脱​管​调​用​者​(detached invoker)。​它​也​包​含​基​于 HTTP 访​问 JNDI 的​代​理​绑​定​。​
jboss-aop-jdk50.deployer此​服​务​配​置 AspectManagerService 并​部​署 JBoss AOP 应​用​程​序​。​
jboss-bean.deployerjboss-bean.deployer 提​供​了 JBoss microcontainer,它​部​署​包​含​在 .beans 文​件​里​的 POJO 服​务​。​
jboss-ha-local-jdbc.rarjboss-ha-local-jdbc.rar 是​支​持​数​据​源​失​效​切​换​的 jboss-local-jdbc.rar 的​实​验​版​本​。​
jboss-ha-xa-jdbc.rarjboss-ha-xa-jdbc.rar 是​支​持​数​据​源​失​效​切​换​的 jboss-xa-jdbc.rar 的​实​验​版​本​。​
jboss-local-jdbc.rarjboss-local-jdbc.rar 是​一​个 JCA 资​源​适​配​器​,它​实​现​支​持 DataSource 接​口​但​不​支​持 JCA 的 JDBC 驱​动​的 JCA ManagedConnectionFactory 接​口​。​
jboss-xa-jdbc.rarjboss-xa-jdbc.rar 是​一​个 JCA 资​源​适​配​器​,它​实​现​支​持 XADataSource 接​口​的 JDBC 驱​动​的 JCA ManagedConnectionFactory 接​口​。​
jbossjca-service.xmljbossjca-service.xml 是 JCA 规​格​的​应​用​服​务​器​实​现​。​它​提​供​了​将​资​源​适​配​器​集​成​到 JBoss 服​务​器​的​连​接​管​理​工​具​。​
jboss-web.deployejboss-web.deployer 目​录​提​供 Tomcat servlet 引​擎​。​
jbossws.sarjbossws.sar 提​供 J2EE web 服​务​的​支​持​。​
jms/hsqldb-jdbc-state-service.xmlhsqldb-jdbc-state-service.xml 提​供 Hypersonic 的 JMS 状​态​管​理​。​
jms/hsqldb-jdbc2-service.xmlhsqldb-jdbc2-service.xml 使​用 Hypersonic 配​置 JMS 持​久​性​和​缓​存​。​它​也​包​含 作​为 JMS 实​现​的​核​心​服​务​的 DestinationManager MBean。​
jms/jbossmq-destinations-service.xmljbossmq-destinations-service.xml 配​置​一​系​列 JMS 单​元​测​试​所​使​用​的 JMS 队​列​和​主​题​。​
jms/jbossmq-httpil.sarjbossmq-httpil.sar 提​供​运​行​通​过 HTTP 使​用 JMS 的 JMS 调​用​层​。​
jms/jbossmq-service.xmljbossmq-service.xml 文​件​配​置​了​核​心​的 JBossMQ JMS 服​务​。​
jms/jms-ds.xmljms-ds.xml 文​件​配​置​了​和 jms-ra.rar JCA 资​源​适​配​器​一​起​使​用​的 JBossMQ JMS 提​供​者​。​
jms/jms-ra.rarjms-ra.rar 是​一​个​资​源​适​配​器​,它​为 JMS 连​接​工​厂​实​现​了 JCA ManagedConnectionFactory 接​口​。​
jms/jvm-il-service.xmljvm-il-service.xml 配​置​了 JVM 内​部​的 JMS 传​输​调​用​层​。​
jms/uil2-service.xmluil2-service.xml 配​置​了 JMS version 2 统​一​调​用​层​。​它​是​快​速​和​可​靠​的​基​于​自​定​义​套​接​字​的​传​输​,用​于 JVM 之​间​的​消​息​传​递​。​
jmx-console.warjmx-console.war 目​录​提​供 JMX 控​制​台​。​JMX 控​制​台​提​供​管​理 MBean 服​务​器​的​简​单​的 web 界​面​。​
jmx-invoker-service.sarjmx-invoker-service.sar 是​一​个​未​解​压​的 MBean 服​务​归​档​,它​开​放​了 JMX MBeanServer 接​口​方​法​的​一​个​子​集​作​为 RMI 接​口​来​启​用​对 JMX 核​心​功​能​的​远​程​访​问​。​它​和​旧​的 jmx-rmi-adaptor.sar 类​似​,区​别​是​传​输​是​由​脱​管​调​用​者​架​构​来​处​理​的​。​
jsr-88-service.xmljsr-88-service.xml 提​供​了 JSR 88 远​程​部​署​服​务​。​
mail-ra.rarmail-ra.rar 是​提​供 JavaMail 连​接​器​的​资​源​适​配​器​。​
mail-service.xmlmail-service.xml 文​件​是​一​个 MBean 服​务​描​述​符​,它​提​供​在 JBoss 服​务​器​内​部​使​用​的 JavaMail 会​话​。​
management/console-mgr.sarconsole-mgr.sar 提​供 Web 控​制​台​。​它​是​一​个 web 应​用​程​序​/applet,提​供​比 JMX 控​制​台​更​丰​富​的 JMX 服​务​器​管​理​视​图​。​你​可​以​用 URL http://localhost:8080/web-console/ 来​访​问​此​控​制​台​。​
monitoring-service.xmlmonitoring-service.xml 文​件​配​置​了​警​告​监​控​器​,如 JMX 通​知​使​用​的​控​制​台​侦​听​者​和​电​子​邮​件​侦​听​者​。​
properties-service.xmlproperties-service.xml 文​件​是​一​个 MBean 服​务​描​述​符​,它​允​许​自​定​义 JavaBeans PropertyEditor 以​及​系​统​属​性​。​
scheduler-service.xmlscheduler-service.xml 和 schedule-manager-service.xml 文​件​是 MBean 服​务​描​述​符​,它​提​供​一​个​调​度​类​型​的​服​务​。​
sqlexception-service.xmlsqlexception-service.xml 文​件​是​一​个 MBean 服​务​描​述​符​,它​处​理​和​供​应​商​相​关​的 SQLException。​
uuid-key-generator.saruuid-key-generator.sar 服​务​提​供​基​于 UUID 的​密​钥​生​成​工​具​。​
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值