因为客户服务器特殊的环境问题,只能使用windows2008r2服务器,然而配置过后,网站的高访问量很快就出现了各种问题,以下是解决的问题汇总。

服务器环境:windows2008R2+jdk8.0+tomcat8.0.21+sqlserver2008r2(以上软件环境均是64位)

1、首先建议安装jdk8.0(64位)以能获取较高的JVM内存设置,不然网站访问并发过高,内存很快就会出现不足,也就是常说的java heap space不足了。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

记得一定要选择:jdk-8u45-windows-x64.exejdk-8u45-windows-x64.exejdk-8u45-windows-x64.exe

2、安装64位的tomcat8.0,目前最新版本是apache-tomcat-8.0.21,下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.21/bin/apache-tomcat-8.0.21-windows-x64.zip

3、修改连接器协议,默认是HTTP/1.1,该默认设置不能支持过高的并发量,不然会出现io错误。方法是修改conf/server.xml将<Connector port="8080" protocol="HTTP/1.1"修改为<Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"

4、优化jar包,如果一个jar文件出现在多个WEB应用中的话,可以将该jar文件统一放到一个目录下,以 避免被tomcat 多次加载,耗用内存占用。方法是:

修改:/conf/catalina.properties文件

将:

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"后面增加:"${catalina.home}/share/lib/*.jar"

然后将共用的jar文件放到tomcat下share目录里的lib文件夹里即可。

5、tomcat8默认会缓存图片资源,当并发过高时,会提示warn信息: WARNING [http-nio-80-exec-43] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at.....,这个本身没有什么问题,只是不断在日志中写入信息,日志文件不断增加,感觉不好,干脆设置不缓存,方法是:

修改META-INF下的context.xml文件,在Context中增加一行:<Resources cachingAllowed="false"></Resources>

6、设置jvm较大内存,编辑bin/catalina.bat,找到以下代码段:rem Guess CATALINA_HOME if not defined,在其上面增加代码:

set JAVA_OPTS=-Xms512m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m

这里设置的Xmx为4G内存,如果安装的不是64位的JDK,那么在设置最大内存的时候,就会提示不支持(好像最多能设置到1G多点,要知道服务器内存是64G啊,!!!)。所以第一步为什么安装64位的操作系统了。

7、设置tomcat最大并发数,方法:修改conf/server.xml,在Connector下增加以下代码:maxThreads="1000" minSpareThreads="100" maxSpareThreads="300"  acceptCount="100"

以下是我的配置:

[html] view plaincopy
  1. <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
  2. connectionTimeout="20000" maxThreads="1000" minSpareThreads="100" maxSpareThreads="300"  acceptCount="100"
  3. redirectPort="8443" URIEncoding="GBK"  useBodyEncodingForURI="true"  />

因为大多数时候JSP程序都是部署在linux下,没有想到windows下会有这么多问题,以上是经过测试后的时候,网站在高访问量下没有再出问题。另外经过测试在windows服务器下,使用apache+tomcat集成的方法也不好。对于并发的连接数支持还不如纯tomcat。

转载于:https://www.cnblogs.com/zfswff/p/4775680.html

关于tomcat8在windows2008下高并发下问题的解决方案相关推荐

  1. 高并发下接口幂等性解决方案

    一.背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果. 例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果:2. 我们发起一笔付款请求,应该 ...

  2. 高并发下的网络 IO 模型设计

    今天我们先聊一下高并发下的网络 IO 模型设计 高并发即我们所说的 C10K(一个server 服务 1w 个 client),C10M,写出高并发的程序相信是每个后端程序员的追求,高并发架构其实有一 ...

  3. 面试官:高并发下,如何保证分布式唯一全局 ID 生成?

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结. 这篇文章就是给各位看官提供一个生成分布式唯一 ...

  4. 高并发下秒杀商品,你必须知道的9个细节

    前言 高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个 ...

  5. 高并发下如何保证接口的幂等性?

    前言 接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题.本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考. 不知道你有没有遇到过这些场景: ...

  6. 高并发下的秒杀系统架构设计实战!

    1.秒杀业务分析 正常电子商务流程 (1)查询商品: (2)创建订单: (3)扣减库存: (4)更新订单: (5)付款: (6)卖家发货: 秒杀业务的特性 (1)低廉价格: (2)大幅推广: (3)瞬 ...

  7. 面试官问我:什么是高并发下的请求合并?

    作者 | why技术 来源 | why技术(ID:hello_hi_why) 从一道面试题说起 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍前段时间一个在深圳的,两年经验的小伙伴出去面试了一圈 ...

  8. php电商交押金的逻辑,PHP高并发下抢购、秒杀功能的超卖问题

    ​抢购.秒杀是电商系统比较常见的功能,高并发下一般需要解决两个问题: 高并发下数据库的压力 高并发竞争下出现超卖问题 对于第一个问题,一般可以通过缓存.分库分表.主从等可以解决,这儿主要说说超卖问题. ...

  9. java高并发下的数据安全

    高并发下的数据安全 我们知道在多线程写入同一个文件的时候,会存现"线程安全"的问题(多个线程同时运行同一段代码,如果每次运行结果和单线程运行的结果是一样的,结果和预期相同,就是线程 ...

最新文章

  1. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——插入
  2. 运算方法和运算部件一
  3. 淡季不淡!速卖通户外运动产品好做吗?来看看法国这些爆款!
  4. python中高阶函数和装饰器_三.Python高阶函数和装饰器
  5. “互联网+”促传统企业三大转型
  6. 分享几个大数据相关岗位的职责和面试问题
  7. 电商之争:亚马逊与阿里一较高下
  8. matlab2c使用c++实现matlab函数系列教程-nchoosek函数
  9. Linux USB驱动开发
  10. 微型计算机键盘ins代表,微型计算机技术69124.ppt
  11. 中国计算机学会推荐国际学术会议和期刊目录——A、B、C类期刊会议分级信息
  12. 软件测试工程师绩效考核细则,软件测试工程师绩效考核方案
  13. 自制“营销号视频生成器”
  14. OpenCV3 和 Qt5 计算机视觉:1~5
  15. STM32F4单片机读取光电编码器的小理解
  16. 工作经费的开支范围_经费开支范围
  17. python数据分析培训内容可以_Python数据分析师
  18. python字典创建、使用字典保存中国主要城市和对应邮编_Python字典及相关操作(内含例题)...
  19. mac苹果系统使用技巧
  20. vc获取计算机用户名,vc获取计算机名和ip地址的方法

热门文章

  1. 图像拼接 SIFT资料合集
  2. DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
  3. HTTP权威指南阅读笔记五:Web服务器
  4. npm package.json那些事
  5. java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
  6. 【Android】3.22 示例22--LBS云检索功能
  7. 基于Jquery+Ajax+Json+高效分页
  8. openfire安装配置完全教程
  9. 企业IT解决方案经验分享活动
  10. 过冰点自定义日期时间