一.两个失误
1. Timeout 20 改错 改成0了,导致报500 异常
解决办法:这样客户端链接一直不超时,很快就会占满所有的资源。其它连接就连接不上。这个超时时间是必须有的
2. 配置的应该是AJP1.3的协议,原来配置项有些配置到8080端口了 配置的是http1.1协议。对应于AJP的8009参数没有配置上。导致不能满足高并发的要求.
二.其他调优点
3. tps 上不去
分析:
(1)测试代码问题,把newSampleTest() 放在了setUp里面,统计结果不准
,导致TPS一直比较异常,要么是用户数整除的,要么是直线上升的。
(2)TPS开始会比较高,但随时间大幅下降,响应时间也是越来越长,并通过监控显示, 大量线程bolck在 取用户产品权限这里
QA的测试脚本中存在一个问题:往数据库插入的数据,每次请求都是同一个userid,只会循环改变vaccountid,这样导致按userid取列表的SQL性能每次请求一次比一次差。
(3)接口测试时都是短连接,不需要长链接。
httpd.conf KeepAlive 为Off
JkWorkerProperty worker.localnode.connection_pool_timeout=0 为链接池的等待时间,让其不超时,因为我们采用的是一个apache 对应一个jboss 一直保持通讯就可以了,JBOSS 同步修改。
结果:比原来理想,tps 有提高。
4. 502 异常频繁出现
4.1 解决办法:将原来的 mod-jk localnode方式修改为loadbalancer,使用apache 缓冲池,并设置了apache 线程池大小为500。
4.2 又爆出 502、503 异常:Apache configured -- resuming normal operations
将socket超时时间增加些,让请求的线程等待时间加长一点。不至于很快拒绝掉,导致503异常。
JkWorkerProperty worker.localnode.socket_timeout=20 增加
JkWorkerProperty worker.localnode.connection_pool_minsize=25 (增加,原来注释掉了)
4.3 502 Response has been sent to the client (yet)
解决方法:线程池被被占用,先修改log看下,再有问题修改下 mod-jk soket超时时间。调的长一点。
5. 将maxProcess 和maxThread 同时出现,以哪个为基准,cpu与性能有什么关系
分析: maxProcessor 和maxThread 同时出现时,maxProcess 优先级较高。maxProcess 表示最大并发数,maxThread 是jboss 启动的最大线程数。
这里最大链接数调整为3200 ,这个已经足够满足需求了,用于保证jboss 的稳定性,算法就是每个cpu 可以撑住200个线程,16core*200/core = 3200 ,生产环境为8core cpu需要调整下。
apache 起了10 个进程 StartServers = 10 这里有两个相关参数要调整
MinSpareThreads(http_conf)*10 = MinSpareThreads (server.xml) ?
JkWorkerProperty worker.localnode.connection_pool_size=320 *10 (启动了10个进程)= maxClient
ServerLimit 100
ThreadLimit 400(大于 ThreadsPerChild 320)
StartServers 10
MaxClients 3200
MinSpareThreads 100
MaxSpareThreads 320(小于MaxClients/10)
ThreadperChild 320
6. 报异常Socket read failed
[org.apache.catalina.core.StandardWrapperValve] ERROR org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/pc2].[remoting] :: Servlet.service() for servlet remoting threw exception
java.io.IOException: Socket read failed
at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:1014)
at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:1089)
解决方法:对比和UDB配置区别server.xml
maxThreads="3200" [color=red]minSpareThreads="100"(1000修改为100没有与httpd中相应值 10:1 这个说法)[/color] backlog="256"
7. 宕机,apache error_log报child process 14629 still did not exit, sending a SIGTERM 错误
解决办法:apache 子进程无法正常终止,资源耗尽就宕机了,apache的日志文件太大导致的,将apache 日志删除。
8. 3200多个close_wait 状态, apache 很慢。最终跑完时有1800多个close_wait,gcUtil观察回收情况,发现回收不正常 YGC非常慢,不是每次更新一行都有增加回收次数
解决方法:由于测试环境是 16core的cpu ,这样我们的最大连接数可以按照 16*200= 3200 调,从结果来看,1800个最终的close_wait/UDB 在同样配置下是900左右的cose_wait挂起状态,也说明我们16核接收了更多请求,但是apache 配置确没有接受这么多,导致线程阻塞。调整为 3200个最大并发数。
调整后 wait 的线程保持 200 个左右回收正常了。刚才的回收不正常是由于线程挂起导致的。
分享到:
相关推荐
西门子S7200smart编程软件STEP-7-MicroWIN-SMART-V2.4,仅供学习参考, http://w2.siemens.com.cn/download/smart/STEP 7 MicroWIN SMART V2.2.zip ...
Micro-USB A型D型USB-Mini 接口等各类USB接口 3D封装库(STEP后缀)文件: kma-smt-5s-s-30tr.STEP kusb-sl-as1n-w-kycon.STEP KUSBVX-AS2N-W.STEP MICRO-USB-5pinmsbr-18.stp Micro-USB-DIP.STEP Micro-USB-SMD....
### 《Assembly Language Step-by-Step》知识点梳理 #### 一、书籍基本信息 - **书名**:《Assembly Language Step-by-Step》 - **作者**:Jeff Duntemann - **出版社**:Wiley Publishing, Inc. - **出版年份**:...
《深入解析STEP7-MicroWIN-SMART V2.8:西门子PLC编程工具的精华指南》 在工业自动化领域,西门子的PLC(可编程逻辑控制器)系统以其稳定性和灵活性深受广大工程师的喜爱。其中,STEP7-MicroWIN-SMART是一款专为...
《全面解析STEP7-MicroWIN-SMART V2.4:西门子S7-200编程软件的精髓》 在工业自动化领域,西门子的PLC(可编程逻辑控制器)系统以其稳定性和易用性而备受赞誉。其中,S7-200系列是小型PLC的代表,广泛应用于各种...
"STEP-BY-STEP--LUA.zip_lua_lua脚本_step by step" 这个标题表明,这是一个关于Lua脚本语言逐步学习的压缩包资源。它可能包含了逐步学习教程,帮助用户从基础到进阶掌握Lua编程。 **描述分析:** "Lua脚本语方学习...
标题 "Step-By-Step-guide-for-starting-a-demo-on openwrt.pdf" 暗示了文档是一份逐步指南,它的目的是帮助用户在OpenWRT操作系统上进行一个基础的演示或测试,即输出经典的"Hello, World!"程序。OpenWRT是一个流行...
《Assembly Language Step-by-Step: Programming with Linux》(第三版)是一本深入讲解汇编语言及其在Linux环境下的应用的专业书籍。本书由Jeff Duntemann编写,并于2009年由Wiley出版社出版。该书不仅适合初学者...
BMC - Step-by-Step Guide to Building a CMDB 本指南旨在帮助IT专业人员和企业逐步建立 Configuration Management Database(CMDB),以提高IT服务管理的效率和效力。CMDB是IT基础设施的核心组件,旨在存储和管理...
表贴插装 电阻 电容 二极管类电子元器件 3D视图 3D模型库 (STEP后缀): AXIAL0.1.STEP AXIAL0.2.STEP AXIAL0.3.STEP AXIAL0.32.STEP AXIAL0.4.STEP AXIAL0.5.STEP AXIAL0.6.STEP AXIAL0.7.STEP AXIAL1.0-5W.STEP ...
用户手册中还特别提到了OCDS(On-Chip Debug Support)功能的介绍,即片上调试支持,这对于开发过程中的问题定位和性能优化至关重要。手册提供了一些OCDS相关的设计变更,例如更新了寄存器CCUCON6,7,8中的分频公式,...
STEP7-MicroWIN-SMART-V2.8安装包_链接地址
React Quickstart Step-By-Step Guide To Learning React Javascript Library 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
QFP芯片三维视图PCB封装库CAD Cadence AD库(Step后缀3D模型库): LQFP-100.PNG LQFP-100.STEP LQFP-64.PNG LQFP-64.STEP LQFP20X20-144.PNG LQFP20X20-144.STEP LQFP7X7-48.PNG LQFP7X7-48.STEP PQFP-44.PNG PQFP-...
《全面解析STEP7-MicroWIN-SMART V2.2:西门子S7-200编程软件的精髓》 在工业自动化领域,西门子的PLC(可编程逻辑控制器)系统以其稳定可靠、功能强大而备受赞誉。其中,S7-200系列作为小型PLC的代表,广泛应用于...
7. **问题解决**:对于已知的兼容性问题,列表可能会提供解决方案或者推荐的替代方案,帮助用户避免遇到这些问题。 通过这些兼容性列表,用户能够快速查找并确认他们当前使用的硬件和软件是否能与新版本的STEP 7 ...