对于服务响应慢的问题排查和分析(1)

      简单描述一下问题现象,主要是两个: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监控数据。

 

  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

2.  其次看一下监控宝上对http接口的监控数据,一共监控了3个接口

  • 网站首页:web server上

  • 大盘行情接口:api server上

  • 公司主页:web server上

  • 推送服务接口:api server上

 

 

 

3. 查api server和web server上的/var/log/messagess,没有发现错误信息

 综上,从上面数据看起来,更像是api和web服务内部性能的问题,而不是系统资源问题。因为在同一台服务器上的公司主页响应速度不慢。而且apache进程数和mysql的进程数都未到上限,我们在日志里也没有发现之前遇到过的mysql连接失败问题。推送服务接口响应慢是一个比较奇怪的现象。因为推送服务的逻辑相对简单。

问题原因仍然待查

posted @ 2014-11-05 17:40  公孙青阳  阅读(2393)  评论(0编辑  收藏  举报