CCE是华为公司提供的高度可扩展的、高性能的企业级Kubernetes集群,并能支持Docker容器生态。

CCE可以轻松创建和管理多样化的容器工作负载,并提供容器故障自愈、监控日志采集、自动弹性扩容等高效运维能力。

Tomcat是一个免费的、开源的、轻量级的Web应用服务器,支持JavaEE的Servlet和JSP规范以及HTML、JS等静态资源的处理,既可作为应用服务器运行Java Web应用,也可作为轻量级Web服务器使用。

目前Tomcat是云上Java应用的主流中间件,典型应用如下图所示。

本文通过梳理CCE下Tomcat的关键性能指标及监控方法,并总结了典型性能问题的调优思路,希望对云上应用的调优有所帮助。

调优总体思路

性能调优应从应用整体来分析问题,在排除数据库端性能问题的前提下,CCE上应用端的调优思路如下:

1、分析应用端架构,从F5、Ingress、pod、Tomcat来逐个排查;

2、F5需关注cpu负载、转发流量均衡情况及转发模式,F5 cpu负载过高会影响转发性能,转发流量不均衡会导致Ingress流量不均衡,进而导致pod负载不均衡;

3、Ingress需关注 cpu和内存使用情况及Ingress转发流量均衡情况,Ingress

cpu和内存异常均可导致应用性能下降,Ingress转发流量不均衡会导致pod负载不均衡,进而影响流经该交易的响应时间;

4、应用pod需关注cpu、内存使用情况及pod的重启次数,分析pod资源使用的异常情况,利用jstack工具定位CPU利用率高的线程堆栈信息,利用jmap生成的内存dump文件定位会用内存大的模块;

5、Tomcat需检查线程池、连接池和JVM堆相关参数的配置和使用情况、GC的频率和次数,合理设置相关参数。

除此之外,还可以借助APM工具、全链路监控及应用中添加时间戳等方式定位响应时间长的方法。

关键性能指标

典型性能问题

pod cpu利用率偏高

问题:性能测试过程中,发现pod cpu利用率偏高,不符合预期。

调优思路:CPU利用率高,需要查看CPU消耗在User、Sys、Wait的情况。如果CPU User非常高,可以通过top命令查看哪个线程消耗资源高,Java应用可以用jstack看出此线程正在执行的堆栈,看资源消耗在哪个方法上。

如果CPU Sys非常高,可以用strace(Linux)看系统调用的资源消耗及时间;如果CPU Wait非常高,需考虑磁盘读写。

定位Tomcat线程堆栈信息的步骤如下:

1、先通过ps -ef|grep Tomcat查看进程id;

2、再通过top -Hp 进程id 命令查看cpu使用率高的线程id;

3、将线程id转换为16进制数据;

4、使用jsack命令查看cpu使用率高的线程堆栈信息。

JVM堆内存使用率较高

问题:某系统性能测试过程中JVM堆内存使用率持续升高,超过了阈值。

调优思路:一般若CPU资源消耗正常但监控发现JVM堆内存过高一般从几个角度分析:

一是堆内存大小配置过小,未能发挥资源优势;

二是应用存在死循环;

三是应用阻塞,等待队列不断增大。

具体排查步骤如下:

1、检查JVM的Xmx、MaxMetaspaceSize等参数配置;

2、观察JVM内存曲线是否匀速上升,确认应用是否存在死循环逻辑;

3、分析故障时点dump内存快照。

(1)使用jmap工具生成dump内存快照,在堆内存使用率较低和较高时分别两次dump内存,对比快照中的内存使用情况;

(2)将dump文件导出本地,使用jvisualvm等工具分析,或使用JDK自带的jhat分析,查看应回收但未回收的内存,分析其引用链,查看内存未及时回收的原因。

HTTP 502错误

问题:某交易在性能测试过程中,出现少量失败交易,性能测试工具获取响应报错为502 Bad Gateway。

调优思路:502表示ingress从后端服务接收到无效的响应,需要检查ingress的配置和tomcat配置中关于超时的配置项。

检查ingress超时参数upstream keepalive_timeout和tomcat配置连接超时时间 connectionTimeout,若connectionTimeout<upstream keepalive_timeout,则tomcat的连接会先于ingress断开,此时ingress转发http请求到tomcat,tomcat会拒绝,报502错误,部分应用调整ingress超时参数值小于tomcat的连接超时参数值,可解决502错误。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

项目实践:基于华为CCE环境下Tomcat的关键性能指标及监控方法相关推荐

  1. Linux环境下Tomcat部署Solr4.x

    Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...

  2. 基于jupyter编程环境下——Python入门:列表4

    列表 四.操作列表 1.使用列表的一部分 -- 切片 2.元组 Python资料:Python编程XG:从入门到实践. 四.操作列表 1.使用列表的一部分 -- 切片 在前面学习了如何访问单个列表元素 ...

  3. 解决Linux环境下Tomcat启动卡住问题

    解决Linux环境下Tomcat启动卡住问题 参考文章: (1)解决Linux环境下Tomcat启动卡住问题 (2)https://www.cnblogs.com/0xcafedaddy/p/7193 ...

  4. Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException

    Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException 参考文章: (1 ...

  5. 核心价值观与企业文化管理实践---基于华为的企业文化的管理实践-林 安老师

    核心价值观与企业文化管理实践 ---基于华为的企业文化的管理实践                                林 安 课程背景: 华为用了短短三十年的时间,成为世界五百强企业,成为中 ...

  6. 基于matlab/simulink环境下空调房间仿真模型的建立,基于Matlab_Simulink环境下空调房间仿真模型的建立.pdf...

    第20卷第2期大连水产学院学报Vol . 20 No. 2 2 0 0 5年6月JOURNAL OF DAL I AN FISHER IES UN I VERSITYJun. 2 0 0 5 文章编号 ...

  7. 基于matlab/simulink环境下空调房间仿真模型的建立,基于Matlab/Simulink环境下空调房间仿真模型的建立...

    第 20卷第 2期 大 连 水 产 学 院 学 报 Vol. 20 No. 2 2 0 0 5年 6 月 JOURNAL OF DAL IAN FISHER IES UN IVERSITY Jun. ...

  8. 基于matlab/simulink环境下空调房间仿真模型的建立,基于MatlabSimulink环境下空调建筑物动态仿真模型的建立...

    基于Matlab/Simulink环境下空调建筑物动 态仿真模型的建立 哈尔滨工业大学 陈建成 姜永成 王森 唐勇辉 摘要 分析了空调建筑物的特性,介绍了运用状态空间法建立空调建筑物数字模型的 过程, ...

  9. openoffice java linux 安装_linux环境下安装 openOffice 并启动服务 的方法

    一.背景故事 这两天遇到一个大坑,客户要做office 文档在线预览功能,于是乎就要把office文档转换成pdf交给前端显示. 在某度找了一圈都说openOffice+jodconverter 可以 ...

最新文章

  1. 06上半年网络工程师试题分类精讲.第一部分:计算机与网络知识(上午考试科目).第一章:计算机系统知识...
  2. springSecurity源码分析——DelegatingFilterProxy类的作用
  3. 准备写个nhibernate的学习笔记
  4. php -- 用文本来存储内容,file_put_contents,serialize,unserialize
  5. Spring Security用户认证和权限控制(默认实现)
  6. 控制变频器调节电机梯形图_如何通过PLC控制变频器进行电机转速控制,含代码...
  7. Xzwcad(中望CAD注册机-适用于全系列标准版、专业版、中望结构)
  8. 博格和他的先锋集团创业史(3): 共同基金的先驱者
  9. 指标公式c语言源码下载,通达信99.75%成功率指标公式 源码
  10. 笔记-Tukey Method发现outliers(离群点)
  11. linux环境下如何重装系统,详细教你linux电脑系统怎么安装
  12. 洛谷 【入门1】顺序结构 P5708 【深基2.习2】三角形面积
  13. 关于商品详情页接口流程编排框架的一点实践
  14. slotformatcombinations_用于确定无线通信系统中的时隙配置的方法和设备与流程
  15. VOLTE关键技术:锚定、被叫域选择
  16. java.sql.SQLException: ORA-00918: 未明确定义列ORA-00918
  17. 从零开始学习React——(六):React响应式设计和数据绑定
  18. Qemu-spice云桌面创建
  19. 内置式永磁电机maxwell2d_内嵌式永磁同步电机ANSOFT设计
  20. 黑客与画家 --值得一看的好书

热门文章

  1. 基于SVN的项目管理——集中与分散
  2. 用google来查股票
  3. linux终端如何连接wifi,如何在 Linux 终端中连接使用 WiFi?
  4. python中split()方法
  5. 分析:人名搜索Spock会成下个谷歌吗
  6. win10的远程桌面控制
  7. 红尘梦醒雪无踪,花落无息香如故
  8. 【*夜深了,无心睡眠*】
  9. 微商靠什么引流?微商有哪些平台可以精准引流?
  10. PinPoint使用教程