tomcat缓存
⑴ 怎样清空Tomcat容器缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"
<meta http-equiv="kiben" content="no-cache"
其中,第一行的content="0",是表示过期的时间,如果不是0的话,就必须使用GMT的时间格式。第二行表示不用缓存机制。
删除work目录下的缓存文件。
conf/server.xml 文件Context path 中间加上 reloadable="true"
例如:<Context path="" docBase="E:\MYJSP\" debug="0" reloadable="true" /
在tomcat的startup.bat里首部加上批处理命令
rd/s/q "D:\Program Files\tomcat-6.0\work\Catalina
tomcat路径根据自己情况修改.
这样基本可以解决缓存遗留问题。
==========================================
方法1、再当前浏览器,工具里清空一下上网记录(如果你的cookie没那么重要的话,全部选中,清空)。重新打开一个IE浏览器,再打上网址,回车。
如果还不行方法2、重启tomcat,但是太费时间,有时还不管用。。
方法3、Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost
有一些发布程序的时候编译的jsp的java类,可都清空该文件夹,也可以只删除跟当前项目相关的类。
方法3,最直接。。。彻底
不过我常用方法1。方法3,要翻那么多文件夹,我会在方法1实在还是不可以的话。才用方法3
=========================================方法一:conf/server.xml文件
Context path中间加上reloadable="true"
例如:<Context path="" docBase="" reloadable="true"方法二:删除work目录下的缓存文件
可以把Catalina目录删除; 注意:不能把work整个目录删除,不然重启tomcat时,会把conf/web.xml删除掉,这样在启动时,日志会提示:No Default web.xml,且访问页面会显示404错误;
⑵ Tomcat服务器如何清理缓存
打开tomcat服务安装目录,可以看到所有的相关文件目录
⑶ 清理tomcat缓存,删除work/catalina 下的所有东西,需要重启tomcat吗
需要
work下的目录结构正常如下图,loader文件夹中是class文件以及一些配置文件,org下面是用于展示的页面
文件夹loader下面的东西是不能删除的,如果删除了就必须得重启
文件夹org下面的东西,删除了之后,会重新生成
⑷ tomcat的jsp缓存和java内存机制求教
TOMCAT刚重启,内存很好,用JCONSOLE看也很好,但是经过一天2个访问峰后,第一台机器(负载较为厉害的)内存达到2.5G,linux TOP后查看,JAVA占用3.5G(当然这个数字不是最准确的),堆内存为2.2,OLD代已经满了,OLD代GC不动,NEW代内存在浮动,然后过不长时间内存就爆HEAP内存溢出了。
后来,我用JMAP把内存打成DUMP,下到我本地,用JAVA内存分析器看,内存泄露报告显示,泄漏的内存全为:JSPSERVLET。因为我服务器JSP文件很多,所以报这个问题,我也理解。但是我很郁闷的是,我找不到如果配置TOMCAT清理JSP缓存的方法,我的SESSION为15分钟。
或者还可能有其他的关于内存的问题,我不知道,也正在查,不知道各位高手能不能从我的只言片语中看出我的服务器大概存在什么问题。
我现在主要疑问是,如何才能控制TOMCAT清理JSP缓存。
⑸ 如何清理tomcat服务器缓存
首先,关闭运营环境;其次,要看之前设置的缓存路径在什么地方,根据路径进入文件就可以删除缓存。最后,重新开启运营环境。
⑹ 怎样调节tomcat缓存大小
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 等参数已经生效。、
二.Tomcat并发优化
1.Tomcat连接相关参数
在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中
1>参数说明
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
2.调整连接器connector的并发处理能力
1>参数说明
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
3.Tomcat缓存优化
1>参数说明
c ompression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
4.参考配置
1>旧有的配置
参考网络对服务器做过如下配置,拿出来分享下:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />
后来发现在访问量达到3 百万多的时候出现性能瓶颈。
2>更改后的配置
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
⑺ 怎么在只使用tomcat的情况上,自动缓存js和css或者image等文件
该方法分为以下3个步骤
第一步:写一个filter,可以根据路径的正则来判断该路径的请求是否需要设置max-age:
Java代码
/**
*
* @author ahuaxuan
* @date 2008-12-4
* @version $id$
*/
public class CacheFilter implements Filter{
private static transient Log logger = LogFactory.getLog(CacheFilter.class);
private Integer cacheTime = 3600 * 24;
private List<Pattern> patternList = new ArrayList<Pattern>();
private static ResourceBundle rb = ResourceBundle.getBundle("cache-pattern");
public void destroy() {
}
public void doFilter(ServletRequest rq, ServletResponse rqs,
FilterChain fc) throws IOException, ServletException {
fc.doFilter(rq, rqs);
if (rq instanceof HttpServletRequest && rqs instanceof HttpServletResponse) {
HttpServletRequest request = (HttpServletRequest) rq;
HttpServletResponse response = (HttpServletResponse) rqs;
if (matchPattern(request.getRequestURI())) {
response.setHeader("Cache-Control", "max-age=" + cacheTime);
if (logger.isDebugEnabled()) {
StringBuilder sb = new StringBuilder();
sb.append(" set cache control for uri = ").append
(request.getRequestURI());
sb.append(" and the cache time is ").append(cacheTime).append("
second");
logger.debug(sb.toString());
}
}
} else {
if (logger.isWarnEnabled()) {
logger.warn("---- the request instance is not instanceof
HttpServletRequest ---");
logger.warn("---- the response instance is not instanceof
HttpServletResponse ---");
}
}
}
第二步:在classpath路径下创建一个cache-pattern.properties文件,内容如下:
Java代码
1 = .*ext-all.js
2 = .*prototype.js
3 = .*/css/.*\\.css
1 = .*ext-all.js
2 = .*prototype.js
3 = .*/css/.*\\.css
在这个配置文件中,您可以根据js和css的路径来配置哪些目录,或者哪些文件需要设置max-age.
第三步:
在web.xml添加如下内容:
Java代码
<filter>
<filter-name>cache-filter</filter-name>
<filter-class>com.tudou.tudouadsales.component.web.filter.CacheFilter</filter-
class>
<init-param>
<param-name>cache-time</param-name>
<param-value>86000</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cache-filter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>cache-filter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
⑻ 如何清除tomcat缓存
清除tomcat缓存的具体步骤如下:
我们需要准备的材料分别是:电脑、tomcat。
1、首先我们需要点击打开Tomcat安装目录,之后点击打开temp文件夹。
⑼ eclipse 怎么自动清除 tomcat 缓存
解决办法如下:
1、在jsp文件头加上<meta http-equiv="Expires" content="0"<meta http-equiv="kiben" content="no-cache"其中,第一行的content="0",是表示过期的时间,如果不是0的话,就必须使用GMT的时间格式。第二行表示不用缓存机制。
2、删除work目录下的缓存文件。conf/server.xml 文件Context path 中间加上 reloadable="true"例如:<Context path="" docBase="E:\MYJSP\" debug="0" reloadable="true" /在tomcat的startup.bat里首部加上批处理命令rd/s/q "D:\Program Files\tomcat-6.0\work\Catalinatomcat路径根据自己情况修改.这样基本可以解决缓存遗留问题。
⑽ linux tomcat缓存怎么清理缓存
linux下清除tomcat缓存
首先关闭tomcat服务进程
killall -9 java 比较彻底的结束进程
查看下进程是否结束完全
ps -aux |grep java
然后进入 安装目录/tomcat/work目录下,删除该目录下所有
执行命令:
rm -rf Catalina/
rm -rf Catalinai/
rm -rf Catalinaii/
确认是删除命令:ls,如果work目录下没有Catalina文件夹,这表示删除成功
再进入 安装目录/tomcat/bin目录下执行命令:./startup.sh,启动tomcat