美文网首页
Java知识点总结业务场景篇31-32

Java知识点总结业务场景篇31-32

作者: 发觉原来我只是250 | 来源:发表于2017-07-05 14:30 被阅读0次

三十一、Tomcat优化

增大内存(堆,持久代)并开启server模式

我在做XXX项目时,用到了poi导入和导出数据,由于公司的业务比较繁多,数据量很大,测试时报内存溢出,经过我的分析再结合上网查阅资料,发现可能是tomcat内存不足,需要增大,修改配置文件后测试不再报错.

tomcat增大内存的方式通过修改tomcat配置文件

window下, 在bin/catalina.bat文件中最前面添加:

set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m –Xms1024m -Xmx1024m

linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m –Xms1024m -Xmx1024m "

-client –service

当我们在cmd中运行-java时,黑窗口会出现-client -service这两参数.其作用是设置虚拟机运行模式;client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。server模式启动比client慢,但可获得更高的运行性能。Windows默认为client,如果要使用server模式,就需要在启动虚拟机时加-server参数,以获得更高性能,对服务器端应用,推荐采用server模式,尤其是多个CPU的系统。在Linux,Solaris上,默认值为server模式.

JDK版本

影响虚拟机还有JDK的版本,JDK分为32位,64位两种版本,32位装在32位系统,64位系统可以装32位和64位JDK.64位JDK性能优于32位JDK.

测试的命令 java -xmx数值m –version 报错配置大小失败,反之成功

增加Tomcat最大连接数

使用场景

我在做完一个XXX项目后,测试时发现并发数量增加到一定程度就会很卡,于是我想到了是不是tomcat最大连接数设置有限制.果不其然,配置文件中最大值才500,于是我更改了最大连接数,根据业务我修改了连接数为2000,完美的解决了这个问题;

修改方法在conf/service.xml中默认值

minSpareThreads="30" maxSpareThreads="75" enableLookups="false"

redirectPort="8443" acceptCount="100" connectionTimeout="20000"

disableUploadTimeout="true" />,修改maxthreads的值即可

tomcat进行gzip压缩从而降低网络传输量

tomcat 压缩设置tomcat压缩gzip启用

HTTP 压缩可以大大提高浏览网站的速度,它的原理是,

在客户端请求服务器对应资源后,从服务器端将资源文件压缩,

再输出到客户端,由客户端的浏览器负责解压缩并浏览。

相对于普通的浏览过程HTML ,CSS,Javascript , Text ,

它可以节省60%左右的流量。更为重要的是,它可以对动态生成的,

包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,

压缩效率也很高。

启用tomcatgzip压缩

要使用gzip压缩功能,你需要在Connector节点中加上如下属性

记住来源:http://www.qi788.com/info-42.html

compression="on" 打开压缩功能

compressionMinSize="50" 启用压缩的输出内容大小,默认为2KB

noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

connectionTimeout="20000"

redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"

compression="on"

compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />

三十二、memcached的介绍

memcached是一个用C语言开发的分布式的缓存,内部基于类似hashMap的结构。

它的优点是协议简单,内置内存存储,并且他的

分布式算法是在客户端完成的,不需要服务器端进行

通信,我们当时在做项目的时候因为考虑到项目

的高可用性高扩展性,因此在服务器部署方面采用

了apache+jk+tomcat这种负载均衡的方式,但是也带来了一个问题

就是session共享的问题,虽然可以通过session复制来解决这个

问题,但是在性能方面存在缺陷,所以最后我们采用了

用memcached来存储session,这样既解决了session共享

问题,也解决了session复制那种方式所产生的性能问题。

了解(不必主动说,但别人问的话一定要知道)

memcached是以KEY-VALUE的方式进行数据存储的,

KEY的大小限制:Key(max)<=250个字符;

VALUE在存储时有限制:Value(max)<= 1M;

根据最近最少使用原则删除对象即LRU.

memcached默认过期时间:ExpiresTime(max)= 30(days)

相关文章

网友评论

      本文标题:Java知识点总结业务场景篇31-32

      本文链接:https://www.haomeiwen.com/subject/filqhxtx.html