为实现峰值性能和健康而监测的关键服务器指标

282 阅读16分钟

无论你的应用程序对你的目标用户来说是多么好的设计,多么华丽,多么有用,他们可能不会接受它的缓慢,甚至更糟的是,偶尔会崩溃。你会因此而失去客户和收入。

解决办法绝对不是在应用程序中增加额外的功能来拉回用户。相反,它就像密切关注你的应用程序所在的服务器的健康一样简单。更具体地说,你需要仔细看看服务器性能指标。

服务器性能指标为你提供了一个了解服务器健康状况的窗口,从而有助于识别和预防异常情况。在这篇博客中,我们将介绍值得监测的关键指标,以便为你提供关于服务器性能的重要见解

什么是服务器指标?

服务器指标帮助你监控托管你的应用程序的服务器上发生的事情,以及解决可能影响你的应用程序性能和用户体验的问题。它们也被称为服务器端指标,帮助你深入研究并确定硬件/软件问题的根本原因,以便你能够防止它们继续发展。

例如,与系统容量有关的连续警报/标志,后来会导致应用程序在高峰期崩溃,影响你的SLA。监测和跟踪相关的系统指标有助于你积极主动地采取补救措施。

监测服务器指标需要考虑的一些关键领域是系统容量、可用性、负载容限和应用健康。如果服务器端的指标表现不佳,你的用户也会感到连锁反应。然而,发生在客户端的情况也是一个需要考虑的关键因素。

客户端和服务器端性能指标之间的区别

客户可能从不同的平台--手机、笔记本电脑、平板电脑--以及从不同的浏览器/客户端应用程序访问你的应用程序。客户端指标让你对你的应用程序有端到端的性能可见性:交互速度、位置和连接人口统计学,以及在不同设备/浏览器/应用程序上的性能。这些共同表明了整体的用户体验。

让我们看看几个客户端指标,以确保最佳用户体验。

页面加载时间

页面加载时间衡量你的应用程序页面在客户端加载所需的时间。它被计算为从你点击应用程序链接的瞬间到它完全加载的时间。加载时间越短,客户满意度就越高。它也将帮助你提高你的应用程序的搜索引擎排名。

CPU空闲时间

CPU空闲时间是指CPU在等待第三方的响应时保持空闲的时间。改善这个指标对提高你的SEO得分和用户体验也有重要作用。

渲染时间

渲染时间衡量一个应用程序需要多长时间准备好让消费者与它互动。当你的应用程序中有大量的外部API和元素时,每个元素的渲染时间会有所不同。除非你的应用程序的所有方面都在合理的时间内呈现,否则用户体验将受到影响。

速度指数

这决定了一个页面的内容需要多长时间才能变得可见。它应该在几毫秒的范围内,以确保用户参与。

最重要的服务器性能指标

虽然客户端的指标很重要,但许多问题的根源实际上可能来自于服务器,你的应用程序就是从这里交付的。让我们来看看你应该监测服务器和应用程序的健康和性能的哪些服务器端指标。

服务器可用性和正常运行时间指标

你的服务器需要正常运行来为你的应用程序提供服务,所以提前得到有关可用性的通知可以帮助你在事情发生之前挽救局面。

正常运行时间

服务器正常运行时间是指承载你的应用程序的服务器启动和运行的时间。不可靠的服务器系统正常运行时间指标可能导致糟糕的客户体验。虽然100%的正常运行时间是这个指标的理想目标,但在现实世界的情况下往往是无法实现的。任何高于99%的正常运行时间都是可以接受的;你应该能够把它推到99.5%或99.9%,这取决于你的服务器维护得如何。

可用性

即使你的服务器托管的应用程序是正常的,也可能会出现在其上运行的服务不可用的情况。因此,你也需要监测你的应用程序及其功能的可用性。确保高可用性的经验法则是消除单点故障。为高可用性设计的应用程序,其负载分布在多个服务器上,可以帮助实现接近99.9%的正常运行时间。

错误率

错误率是一个指标,它显示你的应用程序收到的请求总数中失败请求的百分比。这些代码可能是内部服务器代码或HTTP错误代码。当客户收到一个HTTP错误代码,而不是来自应用程序的预期响应时,会影响他们的参与度。

错误代码可以提供对应用程序故障的关键见解,以帮助你提高性能和用户体验。例如,5xx或404错误代码可能表明你的应用程序或服务器的潜在配置问题。这些HTTP 5xx错误代码是内部错误,可能不利于用户体验。

服务器容量指标

虽然确保你的服务器的可用性和正常运行时间可能使你的应用程序更可靠,但如果服务器没有能力为请求提供服务,你的用户可能仍然会有负面的体验。以下是你应该监控的服务器指标,以避免此类问题。

每秒请求数

每秒请求数,也被称为吞吐量,是你的服务器在特定时期内处理的请求数,提供了一个关于服务器有多繁忙的好主意。如果服务器没有足够的能力为负载服务,每秒较高的请求数将导致服务器崩溃。

根据这个指标所提供的洞察力来实施一个扩展策略,可以挽救这一天。在决定扩展计划之前,应将每秒请求数与服务器响应请求的平均时间结合起来阅读。

数据输入/输出

"数据输入 "衡量服务器收到的请求有效载荷的大小,为了提高性能,应该保持较小的有效载荷。较大的有效载荷与较多的请求相结合,可能会导致应用程序请求的数据超过服务器的处理能力。

"数据输出 "是指从服务器发回给用户的响应有效载荷的大小。这里的大小越大,应用程序为用户加载的时间就越长。它还可能给你的服务器的网络基础设施以及用户的网络基础设施带来压力。追踪你的数据出来将有助于保持你的反应轻快,并确保应用程序的快速加载时间。

应用服务器监控指标

平均服务器监控指标,可以提供你的应用程序运行情况的关键指标。

平均响应时间

平均响应时间表示服务器处理来自应用程序的请求所需的平均时间。研究表明,建议将响应时间保持在一秒以内,以确保用户参与。一个低的平均响应时间可能表明,服务器中的一些组件正在以次优的水平运行,需要进行补救。另外,请记住,由于指标代表的是平均数,在检查的时间段内可能有异常值,可能导致数字不准确。

峰值响应时间

峰值响应时间是指在一个特定时期内最长的响应时间。该值应与平均响应时间一起阅读。如果对于一个特定类型的请求来说,两者之间的差异明显较大,这可能表明存在性能瓶颈;也可能是一个瞬时问题。另一方面,两者的数值持续较高,可能表明潜在的服务器性能问题。请记住,平均响应时间给你一个总的概述,而峰值响应时间可以引导你找到问题的根本原因。

服务器负载分担指标

这些指标提供了对应用负载被你的后端服务器管理得如何的洞察力。这在高可用性架构中尤其重要,在这种架构中,负载平衡器后面的多个服务器为用户请求提供服务。以下是需要考虑的关键指标。

线程数

线程数是指在某一特定时间点上收到的请求总数。它为你提供了关于服务器如何处理负载的宝贵信息。一旦达到最大阈值,这些请求就会被保留,直到有足够的时间来处理它们。如果推迟的请求时间过长,它们就会超时。单个服务器可以处理的每个进程的线程数通常被节制,如果超过阈值,就会导致错误。因此,通过将请求扩展到负载平衡器后面的额外服务器来监控和优化线程数是很重要的。

延迟

延迟跟踪用户在向服务器发送连接请求后收到响应所需的时间。延迟是可以决定用户体验的关键指标之一。对于负载平衡的服务器,延迟应该被衡量为响应从负载平衡器发回的时间。优化从负载均衡器到后端服务器的网络路径也可以帮助改善延迟。

健康/不健康的主机

如果一个主机由于底层硬件或软件堆栈错误而无法为用户提供应用服务,那么它就可以被认为是不健康的。如果从负载平衡器后面为用户请求服务的任何服务器是不健康的,它可能影响你的应用程序的容量和性能。监测主机以识别不健康的主机是一个积极的措施,以减轻此类问题。健康/不健康的主机指标也有助于提高应用程序的可用性和延迟性。

容错性

一个设计良好的架构可以确保你的应用程序仍然可以访问--即使从负载均衡器后面为应用程序服务的几台服务器出现故障。这是由容错指标来衡量的,有助于确定负载平衡器有效处理负载的能力。一些常见的容错指标包括平均检测时间(MTTD)、平均故障时间(MTTF)、平均修复时间(MTTR)和平均系统事故间隔时间(MTBSI)。当被跟踪和测量时,这些指标可以深入了解你的应用程序的弹性如何。例如,MTTR告诉你通常需要多长时间才能让一个有问题的服务器恢复正常运行。

吞吐量

吞吐量衡量负载平衡器在单位时间内成功提供的请求的数量,没有任何错误。这是一个很好的指标,表明负载平衡器在及时服务用户请求方面的有效性。较低的吞吐量可能表明负载平衡器或请求被重定向到的服务器的问题。

迁移时间

迁移时间衡量请求在负载均衡器后面的服务器之间迁移所需的时间。它有助于提高负载平衡的效率,使用户总是从健康的服务器上获得请求。

可靠性

服务器可靠性指标给你一个整体的观点,即你的服务器在一段时间内的可用性和性能一致性。在分布式架构中,这些指标应该在服务器和负载均衡器层面进行测量。为了减轻整体的可靠性问题,你需要解决任何已确定的故障点或限制。

系统级的性能指标

服务器性能监测指标为你提供了服务器健康状况的基础数据。除了服务器可用性监测和指标,你还应该把服务器利用率指标和操作系统日志纳入你要监测的服务器性能指标列表。

操作系统日志

操作系统日志包含了需要解决的环境中发生的任何错误的信息。你可以根据关键的操作系统错误代码进一步创建警报,以便及时标记问题。分析这些日志是有帮助的,因为在这么多与应用有关的任务同时运行的情况下,可能很难确定服务器操作系统上正在写入或更新什么。

硬件利用率

硬件利用率是由一些基本但重要的指标来衡量的,如CPU/内存利用率、磁盘I/O和磁盘使用率,这些指标在服务器性能中起着重要作用。这些指标中的任何一个都可能被扼杀,所以应该考虑所有这些指标以确保全面的性能监控。

与安全有关的指标

与安全有关的指标在确保应用性能方面也起着关键作用,因为任何渗透或攻击都会使你的系统变慢并产生深远的影响。以下是你应该测量的服务器指标。

未经授权的访问

未经授权的访问是一个有助于检测你的组织中的渗透的指标,表明安全受到损害。他们帮助你跟踪任何可能影响应用程序性能的可疑的用户或管理员活动,包括敏感文件访问、系统配置变化和文件修改等等。

数据泄露

数据泄露指标表明数据被未经授权的人员/服务从你的服务器中移除或窃取。它还包括内部人员的数据渗出。你应该密切监测你的正常安全范围之外的任何数据移动模式,以确定数据泄露。数据泄露指标可以通过恶意软件、网络钓鱼、勒索软件等引起的网络攻击来列举。

入侵检测

入侵检测指标侧重于服务器网络,并帮助识别异常的流量模式。例如,反复尝试访问你的服务器中的脆弱端口可能表明有一个攻击载体。检测可以是基于模式的,也可以是基于签名的。产生的警报可以实时通知管理员有关活动的攻击。

漏洞和恶意软件检测

攻击者可以针对常见的应用程序和服务器漏洞来获取对你环境的访问。这可能意味着利用未受保护的服务器端口,通过不安全的服务获得后门进入,甚至是执行SQL注入等应用级攻击。基于漏洞检测的指标将有助于及时标记此类问题。

恶意软件可以通过加密数据或收集敏感信息而不被发现,对你的服务器造成严重破坏。你可以实施基于签名或启发式分析的恶意软件检测,指标帮助你在攻击载体扩散和影响服务器性能之前发现这些问题。

日志模式监控

服务器根据其上执行的不同应用相关活动生成日志。这些日志可以是操作系统本身产生的,也可以是由应用工具生成的自定义日志。在这两种情况下,监控日志模式以识别异常,可以提供潜在服务器问题的早期迹象。

我们如何衡量服务器性能指标

服务器性能指标提供了非常需要的信息,说明你的服务器资源是如何被你的应用程序和相关服务所利用的。服务器监控工具 通过监控这些标准的服务器指标来实现这一过程,通过报告和可视化给你提供洞察力。

你的服务器可以部署在混合环境中,包括企业内部和多个云平台,所以确定正确的监控工具是很重要的,它可以跟踪关键的服务器性能指标,无论它们被托管在哪里。

用Sematext监控服务器指标

监控一个有多个服务器的大规模基础设施可能是一个令人难以承受的过程。它需要仔细考虑,首先确定哪些服务器指标值得监测你的环境。下一步是选择一个能够支持这些服务器指标的工具,以及与你的应用程序相关的其他指标、日志和事件。

Sematext Monitoring为您的服务器和部署在多个云平台和服务器上的应用堆栈提供全面的监控解决方案。它提供了一个工具,让你跟踪重要的服务器性能以及特定的应用程序指标。收集到的数据会被总结成简单的仪表盘,帮助你更好地了解你的服务器的整体性能。

使用一个单一的工具来监控你的所有组件,减少了关联和排除问题所需的时间,使问题得到更快的解决。