有效监控系统,发现瓶颈关键点
Copyright © 2009 distributed-cluster.com All Rights Reserved 海纳互联网研究中心 版权所有
海纳互联网研究中心 王怀志
内容介绍
• 后台系统瓶颈监控介绍
• 后台系统瓶颈监控原则
• 后台系统瓶颈监控方法
• 海纳互联网基础平台的瓶颈监控案例
• 总结
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
后台系统瓶颈监控介绍
• 优化是长期的系统工程,不断的进行中
• 开发,运营,优化,开发…….
• 影响系统优化的因素:
1. 业务的变化;
2. 流量的变化;
3. 平台的发展等等。
• 优化的结果:
1. 系统模块的调整/重构
2. 系统架构的调整/重构
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
现实情况:
系统优化的可
能性远远大于
增加设备的可
能性
运维监控
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
Internet
运维监控
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
Nagios等
运维监控
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
运维监控得到的信息:
• 网络流量
• Cpu
• 内存
• 磁盘IO
• 平均负载
• 等等图
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
和数据
运维监控是为了了解系统的状
况,运维为主要目的的监控。
是建立在预知状态下的监控。
得出结论:系统负载太高
或者干脆得不出结论。
告诉研发人员有问题,但
不能告诉到底是什么问题。
研发人员知道有问题,但
不知道如何去解决问题。
最直接的办法是走读代码,
来判断瓶颈。
依赖与研发人员的技术经
验和工作态度(风险加
大)。
瓶颈监控
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
瓶颈监控 对运维监控的补充,专门
为了系统优化和瓶颈定位的监控。
监控好处 相对准确的定位问题,缩短
优化周期,降低研发风险,提高工作
效率。
监控特点 深入系统内部进行监控统
计,根据已知的问题来判断。
判断复杂事物的方法
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
1.不断的总结
2.不断的认识
3.不断的提高
寻原则,找方法,按照客观规律办事
不盲从,不跟风,以实事求是为出发点
瓶颈监控的
思想
教师资格思想品德鉴定表下载浅论红楼梦的主题思想员工思想动态调查问卷论语教育思想学生思想教育讲话稿
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
监控
监控1
监控2
……………….
N-1
N
原则
经验1
经验2
………………..
N
优化 运营
瓶颈监控的思想
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
监控结果1 监控结果N……..监控结果2
原则1
发现问题
原则M……..
设计开发高负载高并发系统
原则(一)
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
• 保证数据存储的连续性,而不
是跳跃性,尽量一次IO解决问
题
设计开发高负载高并发系统
原则(二)
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
• 保证线程锁尽可能少
写操作
读操作
不上锁
上锁
设计开发高负载高并发系统
原则(三)
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
• 尽可能异步代替同步
Int insert(unsigned char buffer,int type)
{
……..
……..
if (type == 1)
return insertcachetable(buffer);
………
………
}
设计开发高负载高并发系统
原则(四)
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
• 避免用户引发计算,所有的计
算结果尽可能提前生成
后台程序生成结果 直接调用
设计开发高负载高并发系统
原则(五)
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
• 靠算法优化,而不是加大内存
和增加cache解决负载问题。
加大内存不是你的事 算法才是你的事
算法不好,把数据全放内存也没用!
瓶颈监控基本方法
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
1.监控用户触发请求的成功率
2.监控随着数据量增长,单个请
求的响应时间
3.监控分布式系统的单点线程并
发数
4.监控分布式系统的点与点之间
的报文请求成功率
监控用户触发请求的成功率
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
最直接的进入系统的方式
统计全部有关后台调用的接口的成功率
interface
server server server
能直接定位问题服务器
监控数据量增长单个请求时间
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
监控单个业务请求,随着数据量的增
长的请求时间的变化趋势
响应时间
数据量
异常
正常
无任何负载的情况下,
出现异常,说明程序
有无谓的计算量,能
直接定位程序的算法
问题。
监控分布式系统的单点线程并发数
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
线程1 线程2 线程3 …. 线程n
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
发现问题时的并发线程数量,
结合其他监控数据进行
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
如果线程并发
很高,而cpu
负载不高,说
明程序里面有
函数有等待延
时,能直接定
位对应函数。
监控点与点之间的报文请求成功率
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
Server1 Server2 Server3
server1到server2之间的请求成功率很低,
server1的cpu负载很低,server2的cpu负载很高,
说明server2出现了计算量问题
server1到server2之间的请求成功率很高,
server1的cpu负载很高,server2的cpu负载很低,
说明server1出现了计算量问题
能直接定位
服务器对应
函数
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
海纳互联网业务基础平台:
海纳互联网业务基础平台支撑公司本身
的十多种互联网业务产品,应对复杂的
高负载高并发业务环境,具有分布式架
构和瓶颈监控体系结构。
把系统瓶颈监控融入其中,不断的搜集
统计数据,为科学的优化,重构技术决
策提供依据。
历时数年,不断的优化,重构,不断的发展
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
登陆服务器
中间件 中间件 中间件
WEB服务器
数据库服务器 数据库服务器 数据库服务器 数据库服务器
网民
系统结构图
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
第一阶段:近1万人同时在线,用户体验性能良好,瓶颈监控正常
第二阶段:近10万人同时在线,用户体验性能较慢,瓶颈监控异常
异常现象:
1.用户普遍感觉登陆很慢;
2.用户数据条目增多,性能下降;
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
根据监测结果,大家分析原因,造成瓶颈问题的
可能是:
1. 登陆服务器问题:有可能是登录服务器的报文
请求的网络模块出现了延迟,发送模块没问题,
有可能是接收模块。
2. 中间件服务器问题:有可能是中间件造成的延
迟,因为中间件里有异步链表缓存,是不是链
表过长造成的问题?
3. 数据库问题:有可能是cache太小造成的。
4. 等等
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
第一个问题的分析
关于”用户普遍感觉登陆很慢“问题的分
析
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
建立原则库
1. 负载高了,进行分布式部署程序优化;
2. IO负载高,进行cache程序优化;
3. 负载很高,优化通信模块,甚至系统内核;
4. 计算负载高,进行CPU利用程序优化;
5. 等等
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
建立原则与监控的关系
IO负载高 Cache优化
服务器负载高 分布式优化
服务器负载高 通信程序优化
Cpu负载高 多核程序优化
…… ……
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
普通监控数据
监控对象 登陆服务器 中间件 数据库
cpu 10% 30% 85%
内存 80% 40% 50%
io 5% 4% 30%
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
优化失败
按照上述的监控原则和监控内容的关系进行
了对应的优化,还是解决不了问题
以上监控数据仍难准确定位,所以开始添
加“监控原则”和“监控内容“
通过查阅资料,总结研究,发现了新的”监
控原则“和”监控内容“
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
监控原则:监控分布式系统的点与点
之间的报文请求成功率
监控内容:监测每个业务报文的响应
时间和变化趋势
具体方法:统计成功响应的业务报文
的响应时间
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
在线人数
登陆服务器
响应时间
监控登陆服务器
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
在线人数
中间件服务
器响应时间
监控中间件服务器
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
在线人数
数据库服务
器响应时间
监控数据库服务器
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
获取好友列表 登陆服务器
获取好友列表 30%
添加好友 10%
查询好友 5%
删除好友 5%
其他 50%
业务报文触发率统计
登陆很慢是好
友列表模块的
问题
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
瓶颈监控结论
根据各种监控数据统计结果和高负载系统
设计原则,确定是数据库的数据存储算法
问题。
定位为:数据库模块的”好友列表“的详细
设计造成的瓶颈问题
找出了瓶颈的关键点
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
原有的数据库设计:树形结构
自己id 好友id 信息
110 130
111 133
112 134
110 122
110 121
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
改进的数据库设计:根据自己的ID直接定位
存储块
好友id 信息
130
122
121
XXX
XXX
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
监控对象 登陆服务器 中间件 数据库
cpu 10% 30% 35%
内存 80% 40% 20%
io 5% 4% 20%
改良后的结果
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
验证了监控原则,添加原则库
IO负载高 Cache优化
服务器负载高 分布式优化
服务器负载高 通信程序优化
Cpu负载高 多核程序优化
服务器负载高
…….
存储算法优化
…….
根据此次优化,
将前述的五点基
本的高负载系统
设计原则全部添
加到了原则库。
使得原则库得到
了完善。
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
第二个问题的分析
关于”用户数据条目增多,性能下降“问题的分
析
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
根据”原则库“中的高负载系统设计原则制定瓶
颈监控方法
监控随着数据量的增长,业务报文请求的
响应时间变化率
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
运营时间
中间件服
务器请求
数据存储
服务器失
败率
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
数据量
对数据存
储服务器
的报文请
求时间
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
原有设计:分页功能采取了报文请求
再排序再计算分页
改进设计:所有的排序都是在添加
的时候完成的,90%以上请求都是
读请求,所以不能让读的时候再去
排序,再去分页
案例分析
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
数据量
对数据存
储服务器
的报文请
求时间
改良后的系统变化
总结
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
1. 瓶颈监控是对运维监控的补充和有目的的
细化
3. 瓶颈监控降低了研发风险,提供科学的
决策数据
2. 瓶颈监控是依赖自己公司的历史经验和特
定系统的设计原则
4. 建立公司自己的瓶颈监控系统,有助于
研发经验的积累
总结
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
瓶颈监控是一种思维方法
瓶颈监控是不断积累知识,不断完善知
识的过程
最后形成公司自有的独特的系统优化和
瓶颈定位的知识库
总结
Copyright © 2009 All Rights Reserved 海纳互联网研究中心 版权所有
建设自己的瓶颈监控系统
经验库
原则库
监控内容
为系统的不断优化提供有力的支撑
Q & A
Copyright © 2009 distributed-cluster.com All Rights Reserved 海纳互联网研究中心 版权所有