对于服务响应慢的问题排查和分析(1)
2014-11-05 17:40
148 查看
简单描述一下问题现象,主要是两个:1. 手机客户端偶尔有时候会出现卡顿现象,比如显示一直在加载,或者显示超时、连接不上服务器。但重新刷新又会问题消失。 2. 最近一段时间早上网站在10点前后一段时间在办公室访问特别慢,半天刷不出来。app有时候也卡。但同一时间,在服务器上直接wget 网站,速度飞快。
当前的服务架构:api server在一台机器上, 网站服务器web server在另一台机器上, 手机app直接请求api server,web server的大量功能会通过内网ip请求api server。master db和slave db分别在另外两台机器,和api server、web server之间的通信也是走内网ip。
问题排查过程如下:
1. 首先看服务器本身负载问题,包括机器网络环境,有一些是监控宝数据,一些是zabbix监控数据。
2. 其次看一下监控宝上对http接口的监控数据,一共监控了3个接口
网站首页:web server上
![](http://images.cnitblog.com/blog/662545/201411/051710467672381.png)
大盘行情接口:api server上
![](http://images.cnitblog.com/blog/662545/201411/051711113612433.png)
公司主页:web server上
![](http://images.cnitblog.com/blog/662545/201411/051711294703535.png)
推送服务接口:api server上
![](http://images.cnitblog.com/blog/662545/201411/051711478146864.png)
3. 查api server和web server上的/var/log/messagess,没有发现错误信息
综上,从上面数据看起来,更像是api和web服务内部性能的问题,而不是系统资源问题。因为在同一台服务器上的公司主页响应速度不慢。而且apache进程数和mysql的进程数都未到上限,我们在日志里也没有发现之前遇到过的mysql连接失败问题。推送服务接口响应慢是一个比较奇怪的现象。因为推送服务的逻辑相对简单。
问题原因仍然待查
当前的服务架构:api server在一台机器上, 网站服务器web server在另一台机器上, 手机app直接请求api server,web server的大量功能会通过内网ip请求api server。master db和slave db分别在另外两台机器,和api server、web server之间的通信也是走内网ip。
问题排查过程如下:
1. 首先看服务器本身负载问题,包括机器网络环境,有一些是监控宝数据,一些是zabbix监控数据。
web server | api server | master db | slave db | |
cpu负载 | 早上10点左右为一天的最高峰,通常在4-7之间。 下午开盘后一般在2-4之间。其他时间在2以下 | 早上10点左右为一天最高峰,在2-2.5之间 | 5以内 | 5以内 |
网络流量 | 流入较多,高峰期在下午1点-3点,6M左右,流入只有4M左右。 10点的流入是4M左右,流出是2M左右(监控宝数据) | 主要为流出,早上10点前后到达高峰,一般在25M左右(监控宝数据,zabbix数据超过30M) | zabbix数据: 流入不超过1.5M,各时段比较平均。流出在2.5M-4M之间,10点前后也不是一天的最高峰。 | zabbix 数据:流入的峰值在10-14M(这台机器上有抓取),但一天内出现较多,10点左右的流量不比其他时段多。流出的峰值不到1M,并且各时段都差不多。 |
ping响应时间 | 可用率100%,平均响应30ms以内 | 可用率100%,平均响应30ms以内 | 无监控 | 无监控 |
端口连接数(netstat -nap统计) | 早上10点左右为1w多,端口资源总数是2w多。 | 早上10点左右为5w多,端口资源总数在6w多 | 1w以内 | 1w以内 |
服务连接数 | httpd进程在500以内(高峰期的active threads不超过300,Idle Threads为100出头),上限是2000 | httpd进程在800以内(高峰期的active threads是450,Idle Threads为400出头),上限是1024 | 上限800,高峰期连接数最大不超过300 | 上限800,高峰期连接数最大不超过150 |
网站首页:web server上
![](http://images.cnitblog.com/blog/662545/201411/051710467672381.png)
大盘行情接口:api server上
![](http://images.cnitblog.com/blog/662545/201411/051711113612433.png)
公司主页:web server上
![](http://images.cnitblog.com/blog/662545/201411/051711294703535.png)
推送服务接口:api server上
![](http://images.cnitblog.com/blog/662545/201411/051711478146864.png)
3. 查api server和web server上的/var/log/messagess,没有发现错误信息
综上,从上面数据看起来,更像是api和web服务内部性能的问题,而不是系统资源问题。因为在同一台服务器上的公司主页响应速度不慢。而且apache进程数和mysql的进程数都未到上限,我们在日志里也没有发现之前遇到过的mysql连接失败问题。推送服务接口响应慢是一个比较奇怪的现象。因为推送服务的逻辑相对简单。
问题原因仍然待查
相关文章推荐
- web服务中API接口响应过慢问题排查
- 一次Mysql连接池卡死导致服务无响应问题分析(.Net Mysql.Data 6.9.9)
- 解决 IIS "服务没有及时响应启动或控制请求" 问题
- WCF热门问题编程示例(2)多个实例调用一个WCF服务操作,需要等待服务响应吗
- C#启动windows服务方法的相关问题分析
- Redis 响应延迟问题排查
- Redis 响应延迟问题排查
- 对于"容量分别为A与B的两个水桶,是否能够通过互相倒水可以得到1~MAX(A,B)所有容量的水"问题的分析
- 如何排查sharepoint2010用户配置文件同步服务启动问题
- 博协软件对于国内主流互联网地图服务供应商的分析比较
- 线上服务经常性死机问题分析总结
- 问题排查中用到的工具及通用分析过程
- WCF热门问题编程示例(2)多个实例调用一个WCF服务操作,需要等待服务响应吗
- 某sde服务问题排查简记
- 关于IIS“服务没有及时响应启动或控制请求”的问题
- 对于gcc glibc和binutils升级的次序问题分析与思考
- windows服务发布过程中遇到问题的原因分析及解决方式
- AIX telnet服务的关闭和响应慢的问题
- WCF热门问题编程示例(2)多个实例调用一个WCF服务操作,需要等待服务响应吗
- ArcGIS服务分析及问题处理