当前位置:首页 > 日记 > 正文

idea设置tomcat内存 | 修改tomcat内存配置

idea设置tomcat内存 | 修改tomcat内存配置

1. 修改tomcat内存配置

是为了提高运行速度,可以让tomcat存放更多文件。

2. 怎么设置tomcat内存

一、使用catalina.bat等命令行方式运行的tomcat。

查看系统最大支持内存命令:java-Xmx1024m-version。

1、修改tomcat\bin\Catalina.bat文件。

二、使用系统中的“服务”,或者开始菜单的可执行程序运行的tomcat。

1、关闭现在正在运行的tomcat。

三、查看现有tomcat的内存大小情况。

1、启动tomcat。

2、访问http://localhost:8080/manager/status,并输入安装tomcat时输入的用户与口令,如admin,密码admin(密码是在tomcat安装时输入的)。

3. tomcat 设置内存

修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%这行下面前面加上JAVA_OPTS='-Xms512m -Xmx1024m'JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小.-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小 扩大jvm的方法这个说法太泛,其实是在运行jvm的时候指定的,如果你运行的是 tomcat 就是改 catalina.bat 如果你运行的是eclipse 就是修改 eclipse.ini 所以jvm的内存大小怎么修改是看你运行的具体程序的,不通程序有不同的改法

4. tomcat内存配置文件

tomcat是应用服务运行软件,用来运行互联网应用包的,也就是所谓的项目。首先,要把用集成环境打包好的war包放到tomcat指定的目录下,tomcat会根据web.xml读取初始化的配置,找到目录下的应用包,把应用读取到内存中运行,接受来自客户端的访问。

5. tomcat增加内存配置

1、一开始是远程debug的问题,出现了“Debugger failed to attach: handshake failed - received >GET / HTTP/1.1< - expect ed >JDWP-Handshake<”。删除catalina.sh中的远程调试即可。

2、查看端口,发现一个tomcat端口消失,继而检测是内存原因,分别根据实际情况调整每个tomcat的内存,解决问题。

6. tomcat修改内存大小

其实优化的方式有几种,这其中老渔哥个人认为Tomcat内存优化有效、也简单一点。具体方法步骤如下:Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数。JAVA_OPTS参数说明-server 启用jdk 的 server 版;-Xms java虚拟机初始化时的最小内存;-Xmx java虚拟机可使用的最大内存;-XX:PermSize 内存永久保留区域-XX:MaxPermSize 内存最大永久保留区域服务器参数配置现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:首先查看Tomcat 进程号:sudo lsof -i:9027我们可以看到Tomcat 进程号是 12222 。查看是否配置生效:sudo jmap – heap 12222我们可以看到MaxHeapSize 等参数已经生效。、

7. tomcat怎么设置内存

修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%这行下面前面加上JAVA_OPTS='-Xms512m -Xmx1024m'JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小.-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小 扩大jvm的方法这个说法太泛,其实是在运行jvm的时候指定的,如果你运行的是 tomcat 就是改 catalina.bat 如果你运行的是eclipse 就是修改 eclipse.ini 所以jvm的内存大小怎么修改是看你运行的具体程序的,不通程序有不同的改法

8. Tomcat修改内存

为了达到最优配置,我进行了通用业务系统登录及首页待办、查询、统计内容加载等场景的压力实测,建议:

在tomcat虚拟内存为2G,建议设置最大线程为500~600,可支持最大并发量为500~600

在tomcat虚拟内存为4G,建议设置最大线程为600~700,可支持最大并发量为600~700

如果需要达到自身业务系统的最优配置,还是需要根据自身业务系统的场景进行逐步压力实测,再根据结果进行线程数的上调或下调。

注意:另外,在另一篇文章“Tomcat性能调优:虚拟内存JVM设置”也提到“tomcat虚拟内存JVM最大设置为4G。经过实测4G以上性能提升极小,考虑nginx+tomcat集群做负载均衡。”

9. 修改tomcat运行内存

如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递 JAVA_OPTS 环境变量来轻松地设置JVM的内存参数。比如,对于官方Tomcat 镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例

docker run --rm -e JAVA_OPTS='-Xmx512m' tomcat:8

在日志中,我们可以清楚地发现设置已经生效 “Command line argument: -Xmx512m”

02-Apr-2016 12:46:26.970 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.32

02-Apr-2016 12:46:26.974 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Feb 2 2016 19:34:53 UTC

02-Apr-2016 12:46:26.975 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.32.0

02-Apr-2016 12:46:26.975 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux

02-Apr-2016 12:46:26.975 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.1.19-boot2docker

02-Apr-2016 12:46:26.975 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64

02-Apr-2016 12:46:26.975 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-7-openjdk-amd64/jre

02-Apr-2016 12:46:26.976 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.7.0_95-b00

02-Apr-2016 12:46:26.976 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation

02-Apr-2016 12:46:26.977 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat

02-Apr-2016 12:46:26.977 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat

02-Apr-2016 12:46:26.978 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties

02-Apr-2016 12:46:26.978 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

02-Apr-2016 12:46:26.978 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx512m

...

然而在Docker集群上部署运行Java容器应用的时候,仅仅对JVM的heap参数设置是不够的,我们还需要对Docker容器的内存资源进行限制:

1. 限制容器使用的内存的最大量,防止对系统或其他应用造成伤害

2. 能够将Docker容器调度到拥有足够空余的内存的节点,从而保证应用的所需运行资源

关于容器的资源分配约束,Docker提供了相应的启动参数

对内存而言,最基本的就是通过 -m参数来约束容器使用内存的大小

-m, --memory=""

Memory limit (format: <number>[<unit>]). Number is a positive integer. Unit can be one of b, k, m, or g. Minimum is 4M.

那么问题就来了,为了正确设置Docker容器内存的大小,难道我们需要同时传递容器的内存限制和JAVA_OPTS环境变量吗? 如下所示:

docker run --rm -m 512m -e JAVA_OPTS='-Xmx512m' tomcat:8

这个方法有两个问题

1. 需要管理员保证容器内存和JVM内存设置匹配,否则可能引发错误

2. 当对容器内存限制调整时,环境变量也需要重新设定,这就需要重建一个新的容器

是否有一个方法,可以让容器内部的JVM自动适配容器的内存限制?这样可以采用更加统一的方法来进行资源管理,简化配置工作。

大家知道Docker是通过CGroup来实现资源约束的,自从1.7版本之后,Docker把容器的local cgroups以只读方式挂载到容器内部的文件系统上,这样我们就可以在容器内部,通过cgroups信息来获取系统对当前容器的资源限制了。

我创建了一个示例镜像 registry.aliyuncs.com/denverdino/tomcat:8-autoheap

,其源代码可以从Github 获得。它基于Docker官方Tomcat镜像创建,它的启动脚本会检查CGroup中内存限置,并计算JVM最大Heap size来传递给Tomcat。其代码如下

#!/bin/bash

limit_in_bytes=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)

# If not default limit_in_bytes in cgroup

if [ "$limit_in_bytes" -ne "9223372036854771712" ]

then

limit_in_megabytes=$(expr $limit_in_bytes \/ 1048576)

heap_size=$(expr $limit_in_megabytes - $RESERVED_MEGABYTES)

export JAVA_OPTS="-Xmx${heap_size}m $JAVA_OPTS"

echo JAVA_OPTS=$JAVA_OPTS

fi

exec catalina.sh run

说明:

为了监控,故障排查等场景,我们预留了部分内存(缺省64M),其余容器内存我们都分配给JVM的堆。

这里没有对边界情况做进一步处理。在生产系统中需要根据情况做相应的设定,比如最大的堆大小等等。

现在我们启动一个tomcat运行在512兆的容器中

docker run -d --name test -m 512m registry.aliyuncs.com/denverdino/tomcat:8-autoheap

通过下列命令,从日志中我们可以检测到相应的JVM参数已经被设置成 448MB (512-64)

docker logs test

...

02-Apr-2016 14:18:09.870 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx448m

...

我们也可以方便的调整Java应用的内存.

Docker 1.10提供了对容器资源限制的动态修改能力。但是由于JVM无法感知容器资源修改,我们依然需要重启tomcat来变更JVM的内存设置,例如,我们可以通过下面命令把容器内存限制调整到1GB

docker update -m 1024m test

docker restart test

再次检查日志,相应的JVM Heap Size最大值已被设置为960MB

docker logs test

...

02-Apr-2016 14:21:07.644 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx960m

相关文章

鳄鱼线怎么设置 | 鳄鱼线代码

鳄鱼线怎么设置 | 鳄鱼线代码

指标,线代,指示,设置,应用技巧,1. 鳄鱼线代码zim是津巴布韦国家代码。津巴布韦是非洲工业较发达的国家,制造业、农业、矿业为经济三大支柱,津巴布韦以出产优质鳄鱼皮而闻名,有“鳄鱼之乡”的誉称。该国自然资源丰富,工农业基础较好。2019年11月…

下拉快捷键怎样设置 | 下拉选择快

下拉快捷键怎样设置 | 下拉选择快

快捷键,选择,设置,下拉列表,快捷方式,1. 下拉选择快捷键1、首先在excel表格中的有数据的单元格下一行点击行标,将整行全部选中。2、然后按下键盘上的快捷键“Ctrl+shift+向下方向键”。3、即可快速下拉到页面的最后一行位置,并且可以同时将所…

应用相机权限设置 | 软件使用相机

应用相机权限设置 | 软件使用相机

权限,软件使用,权限设置,设置,相机,1. 软件使用相机的权限在win10系统中有一个相机功能,只要电脑连接摄像头之后就可以使用到相机功能来进行拍照了,并且在电脑中的某些软件还可以获取电脑的相机权限进行照片的拍摄,不过开启这个相机权限之后,在…

逗号快捷键怎么设置 | 如何快速在

逗号快捷键怎么设置 | 如何快速在

数字,设置,快捷键,批量添加,数据,1. 如何快速在添加逗号一句话没说完,中间需要停,加逗号2. 怎么批量在数字后面加逗号1、首先打开excel表格,在A列单元格中输入一些数值,需要在这些数值后添加逗号。2、然后在B1单元格中输入“=”符号。3、然后接…

excel设置只读权限 | excel设置只

excel设置只读权限 | excel设置只

权限,只读,设置,筛选,读写,1. excel设置只读权限可以筛选1、打开要筛选的excel表格2、选择【排序与筛选】的下拉菜单3、在下拉菜单中点击【筛选】4、这时单元格就会出现一个下拉菜单的选项,点击5、在弹出来的页面就是勾选的要筛选的内容6、…

如何设置按键音 | 如何设置按键音

如何设置按键音 | 如何设置按键音

音效,设置,取消,修改,自定义,1. 如何设置按键音效在手机里打开搜狗输入法,然后进入设置界面就可以设置的2. 怎样设置按键音效1、首先打开手机,找打设置选项。2、进入设置之后,找打系统和更新选项,点击。3、进入系统和更新之后,找打语音和输入法…

苹果屏幕解锁快捷键 | 苹果屏幕解

苹果屏幕解锁快捷键 | 苹果屏幕解

快捷键,设置,屏幕,锁屏,解锁,1. 苹果屏幕解锁快捷键怎么设置1、首先打开电脑左上角“苹果图标”,点击选择“系统偏好设置”按钮。2、然后在新的界面里点击选择“桌面与屏幕保护程序”按钮。3、之后在新的界面里点击选择“屏幕保护程序”按钮…

社团部门设置 | 社团各个部门职能

社团部门设置 | 社团各个部门职能

部门,设置,社团,职能,职责,1. 社团各个部门职能一个协会一般设常务理事会,常务理事会作为执行机构。由社长一名,秘书长一名及各部负责人组成。 各部主要有:宣传部、财务部、外联部、组织部。 各个的工作职责有: 社长职责: 1. 召集并主持理事会,提…

oneplus5接电脑 | oneplus5t处理器

oneplus5接电脑 | oneplus5t处理器

处理器,参数,配置,多少钱,型号,1. oneplus5t处理器*#99#:打开/关闭屏幕常亮*#888#:查看硬件版本*#1234#:查看软件版本*#06#:查看本机ID*#6776#:本机出厂日期*#807#:自动测试*#808#:原厂设定*#8778#:恢复原厂设置*#900# 蓝牙开启*#901# 蓝牙…

2千左右的电脑 | 2千左右的电脑能

2千左右的电脑 | 2千左右的电脑能

配置,价位,性价比,知乎,电脑配置,1. 2千左右的电脑能玩逆战吗FPS200是不可能的,就算网吧的配置和网络也很难稳定到这个程度。正常的5000-6000的游戏本就可以。I5 9300H 8G 4G-GTX1065独显 512G SSD2. 玩逆战电脑需要什么配置要求多少价位基…

拍立减怎么设置 | 淘宝拍立减怎么

拍立减怎么设置 | 淘宝拍立减怎么

设置,淘宝,如何设置,店铺,卖家,1. 淘宝拍立减怎么设置淘宝设置满立减价格/怎么使用美折满立减的方法如下:1、首先我们登陆商家工作台,在左侧有一个“我购买的服务”。“我的购买服务”右侧有个-我的增值服务。如果你购买了美折这个软件,那么在…

zb全频模式快捷键 | zb设快捷键

zb全频模式快捷键 | zb设快捷键

快捷键,设置,模式,基本操作,自定义,1. zb设快捷键1、打开雕刻画笔的种类,然后按住“ctrl+alt+鼠标左键点击所需要的笔刷”。窗口上面会出现一排提示,即:按任意键组合来指定自定义热键 -或- 按Esc键或鼠标按钮取消 -或者- 按delete键删除上一个…