13_JDK及其参数配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,效率降低并至不可用。