一个简单web系统的接口性能分析及调优过程
在测试一个简单系统接口性能压力时,压到一定数量,程序总是崩溃,查看相关机器相关数据时,CPU、内存、IO占用均不高,问题自然出现在其它地方
先介绍下系统部件架构

Resin版本为:
[root@localhost lib]# java -classpath ./resin.jar com.caucho.Version
Resin-3.2.1 (built Fri, 17 Oct 2008 04:11:01 PDT)
Copyright(c) 1998-2008 Caucho Technology. All rights reserved
mysql版本为:
Server version: 5.5.39
在跑接口压力时,当TPS达到100时,程序当报错提示为resin重启了
[-- ::] JDK detected deadlock. Restarting Resin.
[::17.929] {resin-} JDK detected deadlock. Restarting Resin.
[-- ::] "" Id= BLOCKED on com.orient.dbpool.o@2726965a owned by "http--80-32" Id=
问题该怎么解决呢?这里先,说说性能问题瓶颈解决的一个思路:
1、查看是否为服务器硬件瓶颈,这里涉及到CPU、内存、IO读写,我们可以通过vmstat、sar或iostat来观察;通过观察,在本例中问题不存在硬件的瓶颈
2、网络瓶颈,可以通过查看网络利用率来确定,方式很多,这里不介绍;不过如果在局域网内、且这仅仅是一个web服务类型网站,与视频类网站不同,所以本例中也不存在网络的问题
3、linux操作系统瓶颈,linux关于性能方面设计到的内核参数太多,这里可以参数《Linux服务器性能调整》一书,当做参考书使用;本例中,对linux TCP连接释放时间做了调整,但问题依旧;
4、中间件瓶颈,这里指的就是第三方的中间件,比如tomcat、JVM、数据库等等,一般在网络下载后的程序,需要根据服务器实际情部分做调整;在本例中,调整了相关参数后,性能有所提高,但个别接口还有问题;
5、应用的瓶颈,这就需要与开发一起调试,比如业务逻辑、sql的优化、算法等等
本例中,linux内核相关参数调整,网上有更详细的参数,请自行参考:
net.ipv4.tcp_syncookies =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_fin_timeout =
在本次测试中,相关中单件的调整如下:
1、Resin 处理能务的调整:
Resin目录下conf\resin.xml文件参数调整
<jvm-arg>-server</jvm-arg>
<jvm-arg>-Xmx512m</jvm-arg>
<jvm-arg>-Xms256m </jvm-arg>
<jvm-arg>-Xss256k</jvm-arg>
<memory-free-min>10M</memory-free-min>
<thread-max></thread-max>
<socket-timeout>20s</socket-timeout>
<keepalive-timeout>15s</keepalive-timeout>
具体的调整方式,可以参考JVM的性能调优相关文章,如:http://uule.iteye.com/blog/2114697
2、web数据库连接参数调整
有的程序中参web连接数据的处理能力有做限制,本例中,默认初始处理能力为1,这里做修改
dbInitialCapacity="" (初始化处理能力)
dbMaxCapacity="" (最大处理能力
3、mysql数据库性能处理调整
具体的可参数MySQL数据库性能能调整进行,根据机器内存,CPU情况进行调整,可以参考blog:http://www.educity.cn/shujuku/692462.html
本例中,对最大连接数、连接池做了调整
--max_connections=
--innodb_buffer_pool_size=2500M
4、程序内部问题,比如登陆时达到了最大的文件打开数,等等
这里设计到内部程序这里就不例举了
参考资料:
linux性能调整:http://download.csdn.net/detail/machen_smiling/7736543
mysql性能调整:http://www.educity.cn/shujuku/692462.html
linux性能监控命令:http://os.51cto.com/art/201412/460698_all.htm
一个简单web系统的接口性能分析及调优过程的更多相关文章
- 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...
- x86服务器中网络性能分析与调优 转
x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...
- 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选
Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...
- Linux服务器性能分析与调优
一 linux服务器性能查看 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc ...
- Linux系统CPU的性能监控及调优
前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的 ...
- linux性能分析及调优
第一节:cpu 性能瓶颈 计算机中,cpu是最重要的一个子系统,负责所有计算任务: 基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上: 我们线上环境的cpu都是多核的,并且基 ...
- 数据库占用CPU过高,性能分析与调优
一.使用 dstat -tcdlmnsygr --disk-util 查看当前系统资源使用状况,当前cpu使用率100% 二.使用TOP命令 查看当前占用CPU进程,可以看到当前占用CPU进程最高的是 ...
- linux性能调分析及调优
转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...
- 用Qt写软件系列三:一个简单的系统工具(上)
导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...
随机推荐
- 如何破解银行O2O模式创新
文/赵志宏 摩 根大通的买房APP,使客户可根据自己的位置选择合适的贷款经理:华道数据提供的卡惠APP,使客户可随时查询自己周围信用卡刷卡打折的商户信息:民生银 行的微信预约叫号功能,使客户根据可自己 ...
- mysql中查看某个日期是星期几?如何知道某个日期是星期几?某个日期是周几?
需求描述: mysql中,如果要查看某个日期是星期几,可以用date_format函数实现,在此记录下. 操作过程: 1.通过date_format函数查看某个日期是星期几 mysql> sel ...
- svg文字与图像
摘要: svg与canvas一样都可以将文本和图像放在画布中,制作出不一样的效果.下面是如何使用svg来渲染文本与图像. 简介: SVG的强大能力之一是它可以将文本控制到标准HTML页面不可能有的程度 ...
- python concurrent.futures包使用,捕获异常
concurrent.futures的ThreadPoolExecutor类暴露的api很好用,threading模块抹油提供官方的线程池.和另外一个第三方threadpool包相比,这个可以非阻塞的 ...
- [web] spring boot 整合MyBatis
1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- How to solve the problem : "You have been logged on with a temporary profile"
/*By Jiangong SUN*/ I've encountered a problem in one server, which is : Every time I login into the ...
- Spring-----配置及对象初始化(1)
一,配置文件进行Spring初始化 1,配置文件编写 <?xml version="1.0" encoding="utf-8" ?> <con ...
- cocos2d-x 3.0 在lua中调用自定义类
环境 windows8, cocos2d-x 3.0, 现在开始安装需要的一些其它包 1. 按README.mdown文档上面要求的, 下载在windows下要安装的东东, 主要就是python2.7 ...
- python BeautifulSoup库用法总结
1. Beautiful Soup 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- 利用广播实现ip拨号——示例
1.创建activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi ...