专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »web服务器 » jvm虚拟机:如何设置Tomcat的JVM虚拟机内存大小 »正文

jvm虚拟机:如何设置Tomcat的JVM虚拟机内存大小

来源: 发布时间:星期五, 2009年1月16日 浏览:139次 评论:0
  Tomcat本身不能直接在计算机上运行需要依赖于硬件基础的上操作系统和个java虚拟机您可以选择自己需要选择区别操作系统和对应JDK版本(只要是符合Sun发布Java规范标准)但我们推荐您使用Sun公司发布JDK确保您所使用版本是最新Sun公司和其它些公司直在为提高性能而对java虚拟机做些升级改进些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%

  可以给Java虚拟机设置使用内存但是如果你选择不对虚拟机不会补偿可通过命令行方式改变虚拟机使用内存大小如下表所示有两个参数用来设置虚拟机使用内存大小

  参数

  描述

  -Xms

  JVM化堆大小

  -Xmx

  JVM堆最大值

  这两个值大小般根据需要进行设置化堆大小执行了虚拟机在启动时向系统申请内存大小般而言这个参数不重要但是有应用在大负载情况下会急剧地占用更多内存此时这个参数就是显得非常重要如果虚拟机启动时设置使用内存比较小而在这种情况下有许多对象进行虚拟机就必须重复地增加内存来满足使用由于这种原因我们般把-Xms和-Xmx设为样大而堆最大值受限于系统使用物理内存般使用数据量较大应用会使用持久对象内存使用有可能迅速地增长当应用需要内存超出堆最大值时虚拟机就会提示内存溢出并且导致应用服务崩溃因此般建议堆最大值设置为可用内存最大值80%

  Tomcat默认可以使用内存为128MB在较大型应用项目中这点内存是不够需要调大

  Windows下在文件/bin/catalina.batUnix下在文件/bin/catalina.sh前面增加如下设置:

  JAVA_OPTS='-Xms【化内存大小】 -Xmx【可以使用最大内存】'

  需要把这个两个参数值调大例如:

  JAVA_OPTS='-Xms256m -Xmx512m'

  表示化内存为256MB可以使用最大内存为512MB

  另外需要考虑是Java提供垃圾回收机制虚拟机堆大小决定了虚拟机花费在收集垃圾上时间和频度收集垃圾可以接受速度和应用有关应该通过分析实际垃圾收集时间和频率来调整如果堆大小很大那么完全垃圾收集就会很慢但是频度会降低如果你把堆大小和内存需要完全收集就很快但是会更加频繁调整堆大小是最小化垃圾收集时间以在特定时间内最大化处理客户请求在基准测试时候为保证最好性能要把堆大小设大保证垃圾收集不在整个基准测试过程中出现

  如果系统花费很多时间收集垃圾请减小堆大小次完全垃圾收集应该不超过 3-5 秒如果垃圾收集成为瓶颈那么需要指定代大小检查垃圾收集详细输出研究 垃圾收集参数对性能影响般说来你应该使用物理内存 80% 作为堆大小当增加处理器时记得增加内存分配可以并行进行而垃圾收集不是并行

  Tomcat 5常用优化和配置

  1、JDK内存优化:

  Tomcat默认可以使用内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.batUnix下在文件{tomcat_home}/bin/catalina.sh前面增加如下设置:

  JAVA_OPTS='-Xms[化内存大小] -Xmx[可以使用最大内存]

  般说来你应该使用物理内存 80% 作为堆大小

  2、连接器优化:

  在tomcat配置文件server.xml中配置中和连接数相关参数有:

  maxThreads:

  Tomcat使用线程来处理接收每个请求这个值表示Tomcat可创建最大线程数默认值200

  acceptCount:

  指定当所有可以使用处理请求线程数都被使用时可以放到处理队列中请求数超过这个数请求将不予处理默认值10

  minSpareThreads:

  Tomcat化时创建线程数默认值4

  maxSpareThreads:

  旦创建线程超过这个值Tomcat就会关闭不再需要线程默认值50

  enableLookups:

  是否反查域名默认值为true为了提高处理能力应设置为false

  connnectionTimeout:

  网络连接超时默认值60000单位:毫秒设置为0表示永不超时这样设置有隐患通常可设置为30000毫秒

  maxKeepAliveRequests:

  保持请求数量默认值100

  bufferSize:

  输入流缓冲大小默认值2048 s

  compression:

  压缩传输取值on/off/force默认值off

  其中和最大连接数相关参数为maxThreads和acceptCount如果要加大并发连接数应同时加大这两个参数web server允许最大连接数还受制于操作系统内核参数设置通常Windows是2000个左右Linux是1000个左右

  3、tomcat中如何禁止和允许列目录下文件

  在{tomcat_home}/conf/web.xml中把listings参数设置成false即可如下:

<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>
4、tomcat中如何禁止和允许主机或IP地址访问
<Host name="localhost" ...>
 ...
 <Valve Name="org.apache.catalina.valves.RemoteHostValve"
     allow="*.mycompany.com,www.yourcompany.com"/>
 <Valve Name="org.apache.catalina.valves.RemoteAddrValve"
     deny="192.168.1.*"/>
 ...
</Host>




  这是我们服务器配置具体文件不能给你涉及到公司机密所以那行我给你我拷贝下来了

  JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: