如何减小tomcat内存使用量?

最近有部分用户会问,为何个人tomcat占用的内存这么高?如何才能把他减小点呢?web

 

其实减小tomcat的内存使用量比较难,可是咱们仍是有一些办法的!数据库

 

要想减小tomcat内存使用量,就必须对tomcat和内存的原理和关系进行了解!浏览器

 

[tomcat和内存的原理]tomcat

 

Tomcat是运行在内存之上的,几乎全部的软件的运行都会占用内存,好比您运行个QQ软件,他也占用内存,这个是物理规律,不须要我在多说什么,服务器

 

咱们会在每一个人的tomcat上作好设置,容许他最大可以使用多少内存,若是超出了,tomcat就不能在继续运行,就会出现假死,网站打开比较慢,网站打不开的状况!app

 

 

[是什么在消耗tomcat内存]框架

 

Tomcat运行在内存上的,tomcat里每增长一点东西(或者说每运行一个网页),他都会占用相应的内存,好比我上传了一个图片,在浏览器里面访问他,tomcat要让这个图片显示,他会占用内存!!一个网页也是这样,好比您上传了一个jsp网页,他运行这个jsp网页的时候,他会占用必定的内存!!webapp

上面都仍是静态的比较好理解,我在说的动态的jsp

好比一个jsp网页他显示数据库里面的10条记录,和显示1w条记录,他所消耗的内存是不同的,有时候用户会问,为何个人访问量也很少大,为何会怎么占用内存呢,这个就和您的访问量,图片的大小,数据库表里面数据记录的多少,放了多少个工程有关系了,访问量只是影响内存的一个可能,还有不少影响内存的选项,咱们须要综合考虑!网站

 

 

[tomcat和内存的其余须要注意的状况]

 

有的用户说,我如今用了250M内存,我升级到大家企业A,企业A的是300M内存,这样内存就够用了吧!! 答案并非确定的,由于您的tomcat24小时内是连续运行的,须要考虑他连续对内存占用的状况,tomcat连续运行的时候,您的tomcat占用的内存也会连续的升高,至于升多高,这个很差预测,这个和您的访问量,图片的大小,数据库的记录多少,有直接关系,好比一个jsp网页他调用数据库里面的100条记录,和调用1w条记录,他所消耗的内存确定是不同的

 

 

[如何减小tomcat内存]

 

减小内存比较困难,我只能从我经验出发给你们作一些参考,可能不全面若是有更好的方法,欢迎在下面留言:

1:减小没必要要的工程或者项目,咱们就遇到过个用户,他内存不够用了,咱们发现他webapps下放了不少工程,他说他没访问,应该不影响,其实这个是错误的,tomcat是不知道你要不要访问的,tomcat会在启动的时候把全部的工程或者项目都一股脑的加载进去,因此即便您不访问他他也会加载,若是不必或者不打算使用他请删除他,不要放在服务器上

 

2:尽可能减小使用框架,开源软件等,框架和开源软件用起来是比较方便,可是他们加载了大量的jar文件,尤为是在tomcat的时候,都一块儿加载到tomcat内存里面,并且还不释放,好比咱们有框架,可能只是用了这个框架中的20%的功能,还有80%咱们用不到,可是框架也同样会把这80%加载到内存里面,形成咱们的内存白白的浪费 [网站一旦成型在修改框架可能不现实,我只是列出来告诉你们有条件的话能够修改]

 

3:尽可能减小对数据库的操做,操做数据库是极大的耗费内存的操做,尤为是多表联合查询,或者表数据比较大的时候,好比从几百万条数据里面检索须要的数据的时候,那占用内存是直线上升的若是您的数据表比较大,请考虑压缩他到合理的范围内!好比把一个大表分为多个小表等

 

4:减小对文件的操做,读写文件也是比较占用内存的频繁的操做一些文件,会形成内存的上升,若是在加以比较多的访问量,这个内存消耗也是比较厉害的,尤为是一些文件索引,还有日志文件,通常咱们不建议用户使用文件索引,一旦使用内存很快就用完了,还很差排查什么地方出了问题,另外能够减小对日志的记录,有的时候程序出问题,日志记录的就比较多,一个日志文件就是几百G,别说读写,就是打开这个文件,都须要很耗费内存的,要知道jsp对文件的读写都是在内存里操做的,因此大文件他占用的内存更是直线上升的,请减小对文件的操做!

 

5:图片的大小,多少也会占用内存,尤为是一些大图片,若是有条件的,能够把图片整理下!!把不须要的删除,把大图压缩后在上传!!

 

6:要养成良好的代码书写规范,尽可能少在代码里申请变量要知道您在代码里申请了String aa=  “”的砍死简单的内存在访问量大的状况下,也消耗内存比较厉害的,另外还有就是在申请完数据库链接的时候,记得释放这个数据库链接,要否则就会出现内存泄漏的问题...

 

 

7:尽可能生成htm静态网页尽可能你们把主页或者访问量比较大的网页,想办法生成htm的静态网页,这样能够有效的减小内存,增长稳定性,您看咱们的主页(www.jspkongjian.net)全是htm静态网页,包括新闻这些东西,那是因为咱们本身把主页生成了htm,目的就是减小内存,增长稳定性,我在这里把咱们本身生成htm的代码给出来,你们若是想也生成htm,能够本身研究下 http://www.jspkongjian.net/news.jsp?id=396(生成htm网页教程)

相关文章
相关标签/搜索