说说如何对Tomcat进行优化?
Tomcat作为Web服务器,它的处理性能直接关系到用户体验,下面是几种常见的优化措施。
1. 掉对web.xml的监视,把jsp提前编辑成Servlet。有富余物理内存的情况,加大Tomcat使用的JVM的内存。
2. 服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。
- 2.1 对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。
- 2.2 内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于full GC,从而导致处理能力严重下降。
- 2.3 硬盘主要问题就是读写性能,当大量文件进行读写时,磁盘极容易成为性能瓶颈。最好的办法还是利用下面提到的缓存。
3. 利用缓存和压缩
- 对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。
- 另外,为了能加快网络传输速度,开启gzip压缩也是必不可少的。但考虑到tomcat已经需要处理很多东西了,所以把这个压缩的工作就交给前端的Nginx来完成。
- 除了文本可以用gzip压缩,其实很多图片也可以用图像处理工具预先进行压缩,找到一个平衡点可以让画质损失很小而文件可以减小很多。曾经我就见过一个图片从300多kb压缩到几十kb,自己几乎看不出来区别。
4. 采用集群 单个服务器性能总是有限的,最好的办法自然是实现横向扩展,那么组建tomcat集群是有效提升性能的手段。我们还是采用了Nginx来作为请求分流的服务器,后端多个tomcat共享session来协同工作。
5. 优化tomcat参数 这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,主要是优化连接配置,关闭客户端dns查询。
猜你喜欢LIKE
相关推荐HOT
更多>>如何撤销已经推送(push)到远端仓库的提交(commit)信息?
撤销提交信息: 首先,通过git log查看提交信息,以便获取需要回退至的版本号; 然后,通过git reset --soft <版本号>重置至指定版本的提交,达...详情>>
2022-11-17 11:29:00你了解哪些加密算法?
RSA RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法。MD5的文本或者一行字符,这行...详情>>
2022-11-08 17:54:54final在Java中有什么作用?
如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。如果引用时类的成员变量,则...详情>>
2022-10-26 16:37:00说一下类加载的执行过程
加载指的是将类的class文件读入到内存中,并为之创建一个java.lang.Class对象。 类的加载由类加载器完成,类加载器由JVM提供,开发者也可以通过...详情>>
2022-10-11 16:38:00数据库有哪些锁?
使用 COMMIT 或 ROLLBACK 语句释放锁。最常使用的MYISAM与INNODB都支持表级锁定。表级锁定分为表共享读锁(共享锁)与表独占写锁(排他锁)。表级锁...详情>>
2022-10-11 14:51:00Java培训问答更多>>
新Java行业疑惑解答:Java的内存管理是如何工作的?
新java script是什么?为什么要学java script
新java和大数据哪个好?未来哪个职业发展更好
新java培训班多久能学会?培训周期大概多久
新java script和java的区别有哪些?如何区分
新java script的数据类型主要有哪些?怎样学的更快
新c语言与java区别在哪里?去培训机构学哪个比较好
Java面试题库 更多>>
华为外包java面试题-Java实现单链表的逆序
Java程序员面试题
Java面试题及答案
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区