13_JDK及其参数配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JDK及其参数配置
曹建侬(2004-3-12)
一、什么是JDK
1:JDK是java develop kit的简称。

(java开发工具包,j2sdk)
2:它为java应用程序提供标准和扩展的API。

(应用程序接口)
3:它为java应用程序提供运行环境。

(jvm—java虚拟机来运行应用程序)所有的java应用程序都是运行在java虚拟机上。

Java虚拟机提供类加载、class检测、运行安全控制、代码编译、动态连接与执行等功能。

一个java虚拟机对应一个进程。

NC运行时startdirectserver只启动了一个java虚拟机进程提供NC应用服务;而startup则启动了4个java进程,其中一个为监控服务,另外3个为NC服务。

4:jdk目录结构:
bin目录:包含可运行命令。

主要有java、javac等
include目录:包含一些java本地方法需要与操作系统打交道的头文件
jre目录:java虚拟机目录,包含
——bin目录:java命令;本地操作系统动态连接库。

——lib目录:包含字体属性;安全属性文件,api库文件。

Lib目录:api打包文件。

5:jdk版本
jdk1.2以前的称之为java 1版本。

Jdk1.2以后的称之为java 2版本:jdk1.3系列、jdk1.4系列。

6:bin目录下相关命令:
javac——java编程语言编译器。

Java——java程序运行时命令。

Javadoc——产生java api文档命令。

appletviewer——在非浏览器中运行与调试applets。

Jar——管理java归档文件。

Jdb——java调试器。

Javah——c头文件产生器,在书写本地文件时使用。

Javap——
Rmi——为remote对象产生stubs和skeletons。

Rmiregistry——远程对象注册服务。

Rmid——
Native2asii——转换文本到unicode格式
Keytool——管理keystores和证书
Jarsigner——产生与验证jar签名.
Policytool——管理policy文件的GUI图形工具。

以jdk1.3系列为例
二、java相关参数设置
java堆说明
1:参数说明
(1)、-client / -server:
是使用服务器端java虚拟机还是客户端java虚拟机;默认是-client;-server对大型的服务器端程序在虚拟机内部做了优化处理。

NC中中间件启动可以采用-server方式。

%NC_JA V A_HOME%\bin\java -DNC_JA V A_HOME=%NC_JA V A_HOME% -DMASTER_JP="-server -Xms300m -Xmx512m" -DNODE_JP="-server -Xms250m -Xmx400m" -cp %_CLASSPA TH% -Dnc.install.home.path=%NC_EXT_DIR% ufmiddle.start.tomcat.StartMiddle .\ierp\bin\prop.xml -DEJBConfigDir=./ejbXMLs -DExtServiceConfigDir=./ejbXMLs
注意:startup中该-server应该加在什么地方。

原因:startup中的java事实上是启动一个中间件监控服务进程;在该监控服务进程中再启动三个真正的中间件进程。

因此在java中设置的参数事实上都是监控服务的参数。

其中-DMASTER_JP、-DNODE_JP属性会作为在该监控线程中启动中间件java进程的初始参数。

(2)、-XX:Newsize=<size> 与-XX:MaxNewSize=<size>:设置新生代大小。

Java堆分为新生代与旧生代,新生代存放新生成的对象,旧生代存放生命周期长的对象。

(3)、-verbose:gc:打开gc统计选项。

(4)、-XX:MaxPermSize=64m:永生带大小设置。

(5)、-XX:-DisableExplicitGC:禁止调用System.gc()。

Jvm只在需要的时候做垃圾回收。

即禁止了日常的小型垃圾回收,只做全局回收。

(6)、-XX:NewRatio=2,新生代与旧生代大小比率。

(7)、-XX:ThreadStackSize=512:线程栈大小(k)。

(8)、-cp/-classpath <目录>:设置系统类路径。

(9)、-version:打印出 jdk版本。

(10)、-D<name>=<value>:在启动时自己设置的jvm系统属性
(11)、-Xmixed/ -Xint:混合模式与解释模式执行
(12)、-Xbootclasspath:设置启动时类与资源搜索路径。

(13)、-Xnoclassgc:禁止jvm垃圾收集。

(14)、-Xincgc:启用增量垃圾收集。

(15)、-Xloggc:<file>:记录gc状态到文件。

(16)、-Xbatch:禁止后台编译。

(17)、-Xms<size>:设置初试java堆大小。

最重要的参数之一。

设置系统初始启动时分配给java虚拟机的堆的大小。

可设置为与-Xmx一样的大小,这样就节省了预期要增长堆大小的消耗。

(18)、-Xmx<size>:设置最大javv堆大小。

最重要的参数之一.
设置系统能够分配给该java进程堆的最大值。

在windos系统下不能超过1.6G。

(19)、-Xss<size>:设置java线程栈大小。

(20)、-Xprof:输出cpu数据。

三、NC启动时java参数设置建议:
设置时需要遵循以下原则:
1、机器物理内存够用:
尽量避免使系统使用虚拟内存,如果如此,则会带来效率问题。

2、java堆设置大小之和控制在物理内存的70%是一个比较理想的值范围。

3、还要根据应用的情况来定制:
如果使用报表(IUFO),则master堆大小要设置大一点;因为报表吃内存比较多,一下子需要1-200m内存对报表而言是比较正常的操作。

并且报表基本上都在master上操作。

如果是只使用NC的总帐相关节点,相对而言对内存要求不是很高,一般应用情况下512m足够。

但存货或某些节点的使用可能对内存压力较大,还需要仔细观察。

4、应用服务器2G内存时的配置推荐:
如果使用了报表,一般情况下:
%NC_JA V A_HOME%\bin\java -DNC_JA V A_HOME=%NC_JA V A_HOME% -DMASTER_JP="-Xms512m –Xmx768m" -DNODE_JP="-Xms256m –Xmx512m"
-cp %_CLASSPA TH% -Dnc.install.home.path=%NC_EXT_DIR% ufmiddle.start.tomcat.StartMiddle .\ierp\bin\prop.xml -DEJBConfigDir=./ejbXMLs -DExtServiceConfigDir=./ejbXMLs
报表数据非常大时,导致master出现out of memory或中间件监控窗中出现:
3000 middlewary is waitting时,可将-Xmx768m 调为1024m。

四、java参数设置不当可能导致NC 的问题:
1:out of memory:日志中出现out of memory,对应中间件down掉被重起。

2:监控窗中出现:MiddleSpy is Waitting,效率降低并至不可用。

相关文档
最新文档