jvm设置内存大小|jvm默认分配内存大小

jvm设置内存大小|jvm默认分配内存大小

1. jvm默认分配内存大小

我们在性能优化的时候,最常用的是使用 (视服务器内存情况进行调整)

其中

XMS : JVM初始分配的堆内存

XMX : JVM最大允许分配的堆内存,按需分配

堆内存分配:

JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;

JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。

默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;

空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。

因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。

说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。

2. jvm内存配置参数 最小内存值

Xms设置堆的最小空间大小。

-Xmx设置堆的最大空间大小。

-XX:NewSize设置新生代最小空间大小。

-XX:MaxNewSize设置新生代最大空间大小。

-XX:PermSize设置永久代最小空间大小。

-XX:MaxPermSize设置永久代最大空间大小。

-Xss设置每个线程的堆栈大小。

3. 关于jvm内存配置参数

可以将参数写入配置文件里,具体如下,在生成的exe目录下面在创建一个文件假设你的可运行文件为a.exe,那么你的jvm虚拟参数文件命名为a.exe.vmoptions。在这个文件写入你的参数配置就可以了,例如:最小内存设置为64m最大设置为256m,那么就在配置文件里写:

-Xms64m

-Xmx256m

注意每个参数都要进行换算。

4. jvm内存参数配置如下

设置Java虚拟机JVM启动内存参数方法如下:Tomcat修改TOMCAT_HOME/bin/catalina.bat,在[echo Using CATALINA_BASE: "%CATALINA_BASE%"] 上面加入,比如:set JAVA_OPTS= -server -Xms1536m -Xmx1536m或者JAVA_OPTS="-server -Xms1536m -Xmx1536m",服务器模式参数-server不加也可以 ,就变成set JAVA_OPTS= -Xms1536m -Xmx1536m或者JAVA_OPTS=" -Xms1536m -Xmx1536m",

5. jvm 默认内存

打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:

32 位:idea.exe.vmoptions 64 位:idea64.exe.vmoptions 设置JVM内存的参数有四个:

-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn Java Heap Young区大小,不熟悉最好保留默认值;

-Xss 每个线程的Stack大小,不熟悉最好保留默认值

6. jvm内存默认值

打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:

32 位:idea.exe.vmoptions 64 位:idea64.exe.vmoptions 设置JVM内存的参数有四个: -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn Java Heap Young区大小,不熟悉最好保留默认值;

-Xss 每个线程的Stack大小,不熟悉最好保留默认值;

7. jvm的内存分配

  方法如下:   1、打开eclipse配置文件eclipse.ini,更改把-Xmx(其数值代表jvm可以使用的最大内存数)   2、运行java程序时,选择run->run configuration->arguments,输入-Xms100M -Xmx800M(-Xms代表jvm启动时分配的内存大小,-Xmx代表可最大分配多少内存)。   3、如果修改web服务器的内存可以通过window->preference->myeclipse->servers->服务器名称->服务器名称+版本->jdk下面修改内存。   例如:-Xms512m -Xmx1024m -XX:PermSize=256m

8. jvm一般分配多少内存

对于Java8而言,堆内存的初识容量为机器实际内存大小的1/64, 最大内存不超过机器实际内存的1/4.

我们的生产环境一般最大4G内存是上限了,这个视具体业务而定,流量大的互联网公司单机内存占用超过16G就会考虑分布式环境了。

9. jvm分配多少内存

  Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。

  Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发。具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。 操作系统对于进程中的线程数有一定的限制:

Windows 每个进程中的线程数不允许超过 2000

Linux 每个进程中的线程数不允许超过 1000

在Java中每开启一个线程需要耗用1MB的JVM内存空间用于作为线程栈之用,此处也应考虑。

10. 设置jvm的内存大小

打开启动器,点左下角的Edit Profile,然后打开的窗口里,勾选左下角的JVM arguments,右边框框里"-Xmx 1G"这个东西里面的1G就是你设置内存的地方。你可以改成2G或者3G,根据你自己电脑内存而定。

推荐阅读