当前位置:  编程技术>java/j2ee

Linux和Windows中tomcat修改内存大小的方法

    来源: 互联网  发布时间:2014-10-19

    本文导语:  其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置 实例,以下给出1G内存环境下java jvm 的参数设置参考: 代码如下:JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:...

其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置

实例,以下给出1G内存环境下java jvm 的参数设置参考:

代码如下:

JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M
-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”
JAVA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m”
CATALINA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m
-XX:NewSize=192m -XX:MaxNewSize=384m”

Linux:

在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh
添加:JAVA_OPTS='-Xms512m -Xmx1024m'
要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值

Windows
在catalina.bat最前面加入

代码如下:

set JAVA_OPTS=-Xms128m -Xmx350m

如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.

但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,
上面的设置就不生效了,
就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.
上面分配200M内存就OOM了
windows服务执行的是bin/tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.
解决办法:

代码如下:

修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation
/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions

原值为

代码如下:

-Dcatalina.home=”C:/ApacheGroup/Tomcat 5.0″
-Djava.endorsed.dirs=”C:/ApacheGroup/Tomcat 5.0/common/endorsed”
-Xrs

加入
代码如下:

-Xms300m -Xmx350m

重起tomcat服务,设置生效
(Tomcat 5.5 的话,在Apache Software Foundation下有个Procrun 2.0的 Tomcat5/Parameters/Java下
设置JvmMs和JvmMx的值就可以了,要修改10进制的值哦)

不过,OS对内存也有限制

附:如何获得JVM的最大可用内存

在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。

实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值。

通过这个表想说明的是,如果你的机器的内存太多的话,只能通过多运行几个实例来提供机器的利用率了,例如跑Tomcat,你可以多装几个Tomcat并做集群,依此类推。

这个人家测试的结果,我这里引用一下

公司 JVM版本 最大内存(兆)client 最大内存(兆)server

代码如下:

SUN 1.5.x 1492 1520
SUN 1.5.5(Linux) 2634 2660
SUN 1.4.2 1564 1564
SUN 1.4.2(Linux) 1900 1260
IBM 1.4.2(Linux) 2047 N/A
BEA JRockit 1.5 (U3) 1909 1902

所以跟OS的系统版本,jdk版本有很大的关系。要是希望充分利用内存,就考虑使用集群。

一、在tomcat的catalina.bat中修改,加入-Dcom.sun.management.jmxremote参数

代码如下:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote

二、需要使用jdk5.0以上,打开bin目录下的jconsole.exe,即可连接跟踪tomcat的内存使用情况


    
 
 

您可能感兴趣的文章:

  • linux c/c++ IP字符串转换成可比较大小的数字
  • windows 2000 访问linux下smaba时候 2G以上大小的文件显示出来的大小很奇怪
  • 根据文件大小查找文件的find命令举例(Linux,centos,redhat)
  • 在linux里进行磁阵划分(连接了实际的外界磁盘阵列)时,划分出来的实际大小和配置大小不同
  • linux内存管理中段的大小是固定值(或者有个最大值),还是随机根据运行程序需要设定段的大小
  • 关于LINUX下的大小写问题.着急
  • 求教:在Linux下的C语言中如何获取分区的剩余大小和文件的大小
  • 为什么linux不同的发行版本的大小有这么大的差别?
  • 修改LINUX内核让系统不区分大小写!
  • 请教,如何修改在虚拟机vmware中安装的linux的ramdisk大小?
  • linux c 如何创建固定大小的文件?
  • partitionmagic调整LINUX分区大小后的问题
  • linux文件系统调整大小的方法(linux调整分区大小)
  • linux 获得远程文件大小
  • 在LINUX环境下,怎样限定SendMail邮件服务器中邮件用户使用邮件空间的大小。。。。。。
  • 在Linux命令行方式下怎么看每个文件夹的大小
  • linux目录的大小是如何计算的?
  • 如何查看linux pagesize的大小
  • LINUX如何调整POSIX消息队列大小
  • linux中makefile大小写问题
  • 高分求救:Linux下如何改变Ramdisk大小!急!!在线等待!!!
  • linux下free命令显示的内存使用情况分析
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!
  • Linux内存文件系统(ramdisk)的三种实现方式
  • linux下内存泄露检测工具 mtrace 如果记录.so文件中的内存信息
  • linux内存文件系统ramfs实现原理
  • 有人熟悉DMA吗?我要实现内存中的内存的“搬动”。(LINUX)
  • linux下进程占用内存空间详解
  • 如何让linux没有到达内存瓶颈时回收内存页并占用最少资源
  • Linux 共享内存介绍及实现代码
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • tar.xz如何解压:linux和windows下tar.xz解压命令介绍
  • windows 和linux双系统,重装windows后,无法启动linux?
  • MTU介绍以及在windows和linux下怎么设置MTU值
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • windows,linux如何实现文件共享(windows,linux安在同一台机)?
  • 用linux(服)windows(客)传输文件,windows端可以,linux端不可以,怎么回事???
  • 晕哦,刚在windows下用虚拟机装个linux,不知道怎么把windows下的文件复制到linux里????
  • Windows2000和Linux双操作系统,Linux系统有问题,我直接把Linux分区删除后,Windows2000进不去了,怎么办???
  • 同机装有Windows和Linux两套系统(先装Win后装Linux),如何使计算机使用Windows的启动模块而不是Linux的启动模块?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • ■■有关RH Linux的在线更新(OnLine Update)?Linux下有没有如Windows下的Windows Update一样的工具呀,可下载补丁和Update组件?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • 装了Linux和Windows,怎样默认进入Windows
  • 郁闷死了。第一次安装Linux,和Windows XP并存。装完之后,直接进入到了Windows XP,Linux进不去。这怎么解决?
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • secureCRT下Linux终端汉字乱码解决方法
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • Linux c字符串中不可打印字符转换成16进制
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3