企业如何选择一款优质的Server端APM产品?居然有很多企业都忽略了这个重要因素
随着互联网的发展,各种网络应用的用户量和重要性与日俱增,对用户体验的要求也越来越高,IT运维支撑着企业数字化业务的效率和质量,已经进入到了数据驱动的精细化管理时代,因此,应用性能管理(APM)的重要性日渐凸显。目前,市场上Server端APM产品和解决方案五花八门,企业该如何去评判和选择呢?今天,小睿就和大家分享一下企业如何选择一款优质的Server端APM产品。
作为一款优质的Server端APM产品,首先必须具备三大能力:
1、自动发现应用业务资产的能力;
2、业务调用链的抓取及分析能力;
3、自动发现及定位业务代码方法及其调用效率的能力。

具体内容小睿已经在之前的文章《什么是真正的应用性能管理》一文中详细阐述,不再展开讨论。今天,小睿想和大家分享的是很多企业在选择Server端APM产品时容易忽视,但又极为重要的一个关键因素!
大家知道,Server端APM产品需要在Server端应用中植入探针程序,来实现对业务、集群、容器、主机、业务代码、数据库、NoSQL、外部服务等方面的监控。探针在运行过程中需要采集、数据处理、组包、压缩、并通过网络进行传输。因此,相应探针工作时对系统资源开销主要包括CPU占用、内存占用、磁盘及网络I/O占用,其占用越多,则对业务自身处理效率影响越高、进而影响终端用户体验;同时,为了应对这部分额外的资源开销,企业往往需要增加更多的IT资源、从而也导致了软硬件和系统维护成本提升,从而带来IT运营成本的总体增加。所以,探针对资源的占用情况就成为决定各APM服务商在基本功能相当的基础上,判定谁更优质的重要因素。
那么,企业应该如何测试APM探针正常工作状态下对服务器性能的消耗呢?小睿以实践出真知:

企业可以对比被监控应用在无探针和有探针下的性能损耗,具体方法建议如下:
一、测试环境准备:
测试标的:建议为用户典型实际生产业务应用系统,并预先在测试环境中部署好;
测试环境:硬件(建议单台服务器4C/8GB/300GB配置),系统(Redhat Linux 6.9),网络(千兆或万兆);
测试压力:使用JMeter或LoadRunner等压测工具模拟单台服务器稳定压力TPS 1000以上,并持续10分钟以上;
测试指标:TPS、业务平均响应时间、CPU使用率、内存使用率、业务错误率等指标。
二、测试过程只需四步:
1、测试标的中不加入任何探针,并持续加压至稳定运行10分钟以上,记录稳定运行后相关测试指标值,作为基准值;
2、在测试标的中分别加入各家APM厂商的探针,并按上述方式做相同的测试,记录相关测试指标值,作为计算各家探针性能开销的参考值;
3、根据测试结果,分别计算业务处理能力损失率(未加探针状态TPS-加探针状态TPS)/未加探针状态TPS X 100%),CPU使用增长率(未加探针状态CPU使用率-加探针状态CPU使用率)/未加探针状态CPU使用率 X 100%,同理,再分别计算内存使用增长率,响应耗时增长率,业务错误增长率;
4、根据第3步指标预先设定区间打分分值,并根据第三步实际指标分别计算得分,从而客观评定各家APM产品探针性能损耗。
博睿宏远根据服务众多客户的实际情况来看:
1、系统资源开销增长率:即对比无探针和有探针模式,有探针模式下的测试应用各项资源开销增长率指标(CPU/MEM)应均在5%以内为佳;
2、对应用业务处理能力的影响:即对比无探针与有探针模式下,系统处理能力损失率、平均响应时间增长率和业务请求处理错误率都不应该超过3%为佳。
博睿宏远的Server端APM探针在许多用户的实际测试表现优异,在某大型客户的综合对比测试中,曾以0.17%的好成绩力压其他厂商(其他厂商均在3%以上)。
博睿宏远Server端APM产品,目前支持JAVA、PHP、Python、Ruby、Node.JS和.NET等主流语言开发的应用系统。当探针运行对所在应用服务器CPU使用率和内存占用的开销一般不高于3%。同时,博睿宏远Server端APM探针有严格的异常保障机制,在确保数据采集的完整性和准确性的基础上,尽量减少探针对宿主应用的影响。当系统资源开销达到一定负载时探针可配置探针熔断机制(默认条件:可用Heap内存低于10%或者GC的CPU占用超过10%),但用户配置后,一旦达到配置条件,探针将会自动暂停工作,保证用户业务的优先正常运行。待系统资源恢复正常时,探针将自动恢复工作。
优质的Server端APM产品在保证业务的连续性和IT系统的稳定性方面发挥了巨大的作用,同时也大大缩减了企业发现和排查问题的时间。但是万事均有两面性,我们在享受APM技术带来效率和便利的同时,也要充分考察,不能只是盲目追求各种看似华丽的功能。测试过程简单却如此重要,可以对比各家产品其探针的资源开销和业务影响。希望此文对企业未来选择Server端APM产品和解决方案时有所帮助。