本文目录一览:
- 1、在jboss启动项目,我访问项目的首页,在jboss中会出现“http-0.0.0.0-8080-1”的线程,请问这是做什么用的
- 2、JVM线程的栈在64位Linux操作系统上的默认大小是多少
- 3、如何修改jvm内存 内存设置过大
- 4、运行jar文件前,我需要设置java虚拟机虚拟内存
- 5、java多线程开多少上限量。
在jboss启动项目,我访问项目的首页,在jboss中会出现“http-0.0.0.0-8080-1”的线程,请问这是做什么用的
JBoss性能优化下。
将bin文件夹下面的run.bat文件中的
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
改成: set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Xss 128k -XX:PermSize=256m -XX:MaxPermSize=256m
PermGen space:全称是Permanent Generation space。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域
Heap space:存放Instance。
Heap设定与垃圾回收Java Heap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象.
-Xms 初始Heap大小
-Xmx java heap最大值 ,不应该超过物理内存的90%
-Xss 每个线程的Stack大小,最佳值应该是128K,默认值好像是512k.
JVM线程的栈在64位Linux操作系统上的默认大小是多少
不显式设置-Xss或-XX:ThreadStackSize时,在Linux x64上ThreadStackSize的默认值就是1024KB,给Java线程创建栈会用这个参数指定的大小。这是前一块代码的意思。
如果把-Xss或者-XX:ThreadStackSize设为0,就是使用“系统默认值”。而在Linux x64上HotSpot VM给Java栈定义的“系统默认”大小也是1MB。
所以这个条件下普通Java线程的默认栈大小怎样都是1MB。
如何修改jvm内存 内存设置过大
-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值; -Xss 每个线程的Stack大小,不熟悉最好保留默认值;
2. 如何分配JVM内存设置:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效): java -Xmx128m -Xms64m -Xmn32m -Xss16m Test (2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配): -vmargs -Xms40m -Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m.
此处设置的参数值可以通过以下配置在开发工具的状态栏显示: 在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容: -debug options -vm javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息.
b. 打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效)
编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效) 选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m
选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
注:如果在同一开发环境中同时进行了b和c设置,则b设置生效,c设置无效,如:
开发环境的设置为:-Xmx256m,而类Test的设置为:-Xmx128m -Xms64m,则运行Test时生效的设置为: -Xmx256m -Xms64m
(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效): a. 设置环境变量: 变量名:CATALINA_OPTS
变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
3
b. 打开Tomcat根目录下的bin文件夹,编辑catalina.bat,将其中
的%CATALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m
运行jar文件前,我需要设置java虚拟机虚拟内存
设置JVM内存的参数有四个:
-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
2. 如何设置JVM内存分配:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此处设置的参数值可以通过以下配置在开发工具的状态栏显示:
在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:
-debug
options
-vm
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息。
java多线程开多少上限量。
1。java的线程开启,默认的虚拟机会分配1M的内存,但是在4G的windows上线程最多也就开到300多 ,是因为windows本身的一些限制导致。
2。虚拟机给每个线程分配的内存(栈空间)是由虚拟机参数-Xss来指定的,在不同平台上对应的默认大小可以 在oracle的官方文档上查询到:
/optionX.html
其中,Linux64位默认Xss值为256K,并非1M或10M
3。一个Java进程可以启动的线程数可以通过如下公式计算:
(系统剩余内存 - 最大堆容量Xmx - 最大方法区容量MaxPermSize)/ 最大栈空间Xss
这样,4G的服务器单个进程可以开多少线程,可以粗略计算出来,大概是5000个线程。