正文
3. 性能管理运营机制:由专职的质量经理负责整体运营,持续发现问题并推动解决,关键的性能指标分解到各业务责任人;
4. 制定目标、分工合作:性能需要持续追踪,制定每个阶段的性能提升目标和需要解决的性能问题,分解到相关责任人和团队,大领导推动跟进结果。
建立应用性能管理机制,首先需要根据应用中最重要的用户操作体验定义可量化的性能关键指标及计算方法,关键指标主要可以分为以下几类:
1. 速度类:衡量应用的请求响应时延、文件下载上传速度、图片和视频加载速度;
2. 比率类:衡量应用的成功率、错误率、性能在某个档位的百分比;
3. 容量类:衡量资源利用率和服务请求量,比如每秒请求数、带宽、CPU利用率。
以上关键指标均有预警值,当性能低于该预警值时,就需要我们行动起来。同时我们还需要知道不同的产品或者业务类型,其衡量性能和质量的关键指标可能差异很大,例如:视频是首帧加载时长、不卡比、错误率;电商类是列表页加载时长、商品页加载时长、支付响应速度、错误率等。
分析性能时需要梳理应用与网络的技术架构,其中拓扑关系是最重要的。
以应用普遍的技术体系为例,由于依赖大量的服务单元,底层服务众多,同时API相互调用,所以应用的拓扑关系较为复杂,可以分为以下几部分进行梳理:
1. 网络物理连接关系,例如网络中3层的路由信息、交换机间的连接信息、服务器的上联信息,两个服务器之间通讯分别经过了哪些网络节点,这些信息都要清楚;
2. 应用依赖的底层服务,例如:数据库、CACHE、存储等;
3. 应用API间的调用关系,业务的不同功能模块之间还需要彼此调用,所以API之间的调用关系也很重要。
这些拓扑信息和调用关系的记录,如果主要依靠人工更新很容易导致错误,或者更新不够及时。现在新的的趋势是自动化采集和更新,自动采集交换机中的信息和应用调用各种服务的日志,通过大数据分析、机器学习的技术,动态更新所有拓扑关系,白山已经在这些方面进行了尝试,并取得了不错成果。
从数据采集到监测角度多纬度覆盖,利于更加快速精准的定位性能问题,主要采集以下五个维度的数据:
1. 网络层:主要采集丢包率、出口带宽、上联端口带宽、负载均衡等数据,通常的采集力度是3-5min,我们建议做到30s以内,这样才能捕获到瞬时的网络异常抖动;
2. 系统层,包括:负载、磁盘IO、内存、CPU、网卡PPS、带宽;
3. 服务软件层,包括:Apache、Nginx、MySQL、Redis、Kafka等;
4. 应用与API层,包括:请求数、错误率、平均时延,以及日同比、周月环比的数据;
5. 客户端,包括:响应时长、下载性能、错误率、上网信息。