服务器配置:linux+tomcat

现象:Linux服务器没有崩,有浏览器中访问页面,出现无法访问的情况,没有报4xx或5xx错误(假死),并且重启tomcat后,恢复正常。

原因:tomcat默认最大连接数(线程数)200个,默认每一个连接的生命周期2小时(7200秒),tomcat使用http 1.1协议,而http1.1默认是长连接。tomcat接受处理完请求后,socket没有主动关闭,因此如果在2小时内,请求数超过200个,服务器就会出现上述假死现象。

解决方案1:及时断开socket

解决方案2:修改tomcat配置文件,修改最大连接数(增大)

修改server.xml配置文件,Connector节点中增加acceptCount和maxThreads这两个属性的值,并且使acceptCount大于等于maxThreads:

connectionTimeout="20000"redirectPort="8443" acceptCount="500" maxThreads="400" />

解决方案3:修改linux的TCP超时时间(socket生命周期)限制vi /etc/sysctl.conf

# Decrease the time default value for tcp_fin_timeout connection

net.ipv4.tcp_fin_timeout = 30

# Decrease the time default value for tcp_keepalive_time connection

net.ipv4.tcp_keepalive_time = 1800

# 探测次数

net.ipv4.tcp_keepalive_probes=2

# 探测间隔秒数

net.ipv4.tcp_keepalive_intvl=2

编辑完 /etc/sysctl.conf,要重启network 才会生效

[root@temp /]# /etc/rc.d/init.d/network restart

参考:

http://blog.163.com/kel_scott66/blog/static/11505396320097245547700/

java 线程假死_Tomcat假死的原因及解决方案相关推荐

  1. java线程池深入讲解_死磕 java线程系列之线程池深入解析——生命周期

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类. 简介 上一章我们一起重温了下线程的 ...

  2. java observable_Java 9:Observer和Observable废弃原因及解决方案

    Observer和Observable在Java 9标记为废弃. 废弃原因 Observer和Observable有几个原因: 1.不能序列化 Observable没有实现Serializable接口 ...

  3. eclipse安装后,出现“can not create the java virtual machine”错误的另一种原因和解决方案

    最近遇到了"can not create the java virtual machine"的错误,经过网上查阅,大多数答案为原因1: 原因1:系统当前内存不足,无法启动: 也有人 ...

  4. java程序假死_分析一个常见的java多线程通信问题(假死现象)

    一件复杂的事,一个人如果不能做,两个人又做的不好,一群人就可能很好的解决了.对于线程来说也是,通过多个线程就能完成一个更复杂的功能,这就需要多个线程协作,协作就需要交流,但是交流总是会出问题的.在这篇 ...

  5. java面试线程必备知识点,怼死面试官,从我做起

    转载自 java面试线程必备知识点,怼死面试官,从我做起 |--多线程一定好么? cpu密集不好 io密集好 |--如何减少上下文切换: 无锁并发(数据id根据Hash分段).CAS.最少线程 |-- ...

  6. 关于vs2008设计视图假死的原因及解决方案总结

    前些天从微软官网(中国)下载了vs2008的90天试用版,安装很顺利.但使用时发现,从源视图向设计视图切换时,界面出现了假死现象,重装后亦无效.我从网上搜索原因,发现很多朋友都有类似的问题,但解决方案 ...

  7. 死磕 java线程系列之线程池深入解析——未来任务执行流程

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类. 简介 前面我们一起学习了线程池中普 ...

  8. java任务流程_死磕 java线程系列之线程池深入解析——普通任务执行流程

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类. 简介 前面我们一起学习了Java中 ...

  9. java 线程假醒_Java并发基础05. 传统线程同步通信技术

    先看一个问题: 有两个线程,子线程先执行10次,然后主线程执行5次,然后再切换到子线程执行10,再主线程执行5次--如此往返执行50次. 看完这个问题,很明显要用到线程间的通信了, 先分析一下思路:首 ...

最新文章

  1. C语言基本运算符和表达式
  2. ALGO-162——Airport Configuration
  3. 【C++深度剖析教程4】C++的二阶构造模式
  4. 快速根据注释生成接口文档网页工具——Apidoc的使用教程
  5. python 释放链表节点_redis:链表
  6. 阿里回应被列为被执行人;Linus Torvalds:我已经不是程序员;Ant Design 4.4.1 发布 | 极客头条
  7. Deep Learning 学习笔记
  8. Gauss型求积公式及其Matlab程序
  9. 强化学习中 on-policy与off-policy 的理解;如何区分on-policy 与 off-policy;RL更新策略、policy结构总结
  10. 天呐?发现一个媲美 “百度” 的程序员网站
  11. 理解 Python 中的装饰器
  12. 解决每次运行Xcode都需要输入密码问题
  13. 热乎的过万字GameFramework讲解笔记文档
  14. GreenDao3.2的基本使用方法
  15. SSH远程登陆主机和SCP远程文件复制
  16. 深圳思泉雷文成:赚不到钱,就去赚商誉
  17. 中兴新支点助力抗洪抢险应急演练,多角度、全方位细节一览无余!
  18. flstudio插件找不到_FLstudio如何安装插件?
  19. 公文OCR开发包软件
  20. rust腐蚀怎么单人游戏_腐蚀Rust画面设置指南 游戏设置优化心得分享

热门文章

  1. word2003 菜单栏工具不见了的解决办法
  2. 懒汉式单例模式(延时加载)
  3. 红米note9pro和华为Nova8pro哪个好-参数对比-哪款手机更值得入手
  4. partition by的用法
  5. mui.alert弹框中实现换行显示
  6. 小学信息计算机,[原创]小学信息技术名词解释
  7. C语言数组练习-求100以内的最大素数
  8. mac下chrome浏览器查看网络源代码,及请求头信息
  9. 如何用cmd写文件(一)
  10. 开放算力,云启未来,与龙蜥一起开启 2022 云栖大会之旅