NCache 健康和性能监控

录制的网络研讨会
通过罗恩侯赛因

该视频网络研讨会全面介绍了可用于使您的应用程序运行的最佳健康状况的选项和工具 NCache.

您将了解两者的健康警报和性能选项 NCache 服务器和 NCache 客户端(应用程序端),具体来说:

  • NCache 健康警报功能:概述以及如何使用它们
  • NCache 性能监控:概述和功能
  • 用于健康和性能监控的内置工具
  • NCache 通过操作系统 (Windows) 资源进行监控
  • NCache 通过第三方工具进行监控
  • 如何调试 NCache 健康和性能问题

我们今天选择的主题是 NCache 健康和性能监控。 所以,基本上,我将介绍不同的监控选项 NCache 在这个特定的网络研讨会中,我将以两种不同的方式解决它。 我将讨论您可以使用的与运行状况相关的选项,然后是性能监控以及应用程序性能以及 NCache 服务器端性能。 这是个 NCache 基于主题,所以我假设你已经知道一些关于 NCache 我也会分享一些基本细节,但今天网络研讨会的议程是我们手头有一个特定的主题。 它是关于 NCache 我会揭露 NCache 关于健康和性能监控的功能。

NCache 部署

好的! 所以,首先一个起点是 NCache 部署。 就像我说的,我会假设 NCache 已经设置,但如果没有,这是一个典型的部署 NCache.

分布式缓存部署

我们有一个服务器层,我们有多个服务器驻留,然后我们有应用程序层,它实际上在客户端-服务器模型中连接到此。 因此,您可以使用单独的缓存层,其中服务器专用于缓存,然后您的应用程序可以在各自的层上运行。 这些可能是 ASP.NET Web 应用程序、Web 表单或 MVC、ASP.NET Web 服务或 Java Web 服务、WCF 或任何其他,也可能是所有连接到的任何后端服务器应用程序 NCache. 所以,只要你手头有这样的部署,你就有缓存 NCache 然后您的应用程序正在连接到 NCache,关于缓存的内容可能有多个问题? 吞吐量是多少? 什么是性能矩阵? 不同对象大小或是否存在任何问题的性能增益是多少。 如何调试?

所以,这就是我今天要介绍的全部内容。 我将讨论不同的日志、不同的健康相关事件,您可以捕获和缓存与健康有关的监控功能。 我将讨论您可以设置的不同调试日志,在此基础上,我还将为您提供性能比较,因此所有这些都捆绑到本次网络研讨会中。 很多事情都会发生,一切都是亲力亲为的。

NCache 服务器要求

事不宜迟,让我们真正开始吧,这是 NCache 服务器要求。 我们通常会在我们的常规演示和网络研讨会中介绍这一点。 所以,它是 8 核或更多,这是推荐的最低设置 NCache 但你也可以有更多的核心。 RAM 根据您的用例,16gb 或更多。 它在所有 Windows 环境以及 NCache 对于服务器部分,建议您使用 2012 或 2016,但它也可以在旧版本上运行,例如 2008 操作系统、.NET 4.0 或更高版本、4.6.1 或 4.6.2 或 4.5。 这是最常用的。 和, remote clients 可以在任何 Windows 环境中再次出现在任何框架上。 也支持 32 位和 64 位所有环境。

设置环境

所以,话虽如此,我会很快跳起来开始做这个。 我将快速创建一个演示环境,为此我将使用两个节点和几个客户端连接到它。 而且,我再次假设我不会分享有关如何创建缓存、配置是什么、拓扑是什么的很多细节。 我假设你已经知道这个细节。 如果您不这样做,在这种情况下,请查找我们每个月都会举办的架构网络研讨会或架构演示,作为其中的一部分 NCache 或作为我们举办的技术网络研讨会的一部分。

因此,我将使用 ASP.NET Web 应用程序以及随安装的控制台应用程序 NCache 所以这就是我的想法。 所以,基本上这就是我将很快开始做的事情。 我将登录我的开发环境。 我已经配置了一个缓存,所以我将创建一个新项目,然后您创建缓存。 所以,我将创建一个演示缓存,这是我将用于所有性能和健康相关监控方面的缓存 NCache. 我会选择分区副本缓存,这是我们最流行的一种,所以我建议你也选择这个,然后选择异步,这是服务器之间的复制模式,然后是 demo1 和 demo2。

所有这些步骤都在我们现有的网络研讨会和演示中详细记录,您可以在我们的网站上查看。 所以,这就是你如何指定服务器的 TCP 端口进行通信,然后是缓存集群的大小。 在缓存变满时收到通知以及如何对此做出反应方面,我有一些想法。我现在将关闭驱逐或保持开启状态。 实际上,让我们关闭它,因为我实际上会展示缓存是如何变满的以及在那种情况下需要什么。 驱逐是缓存变满时的一种方式,它通过从缓存中删除一些项目来自动为新项目腾出空间。 所以,我们不要那样做,选择完成,这已经创建了我们的缓存。

我将快速将我的盒子添加为客户端,这是我的个人电脑。 我需要检查是否 NCache 服务是否已启动。 我一直在摆弄环境,所以请多多包涵。 它可能..是的,它开始了,所以我认为它也被添加了,好吧! 所以,让我们真正开始吧。 这样,我们的环境就搭建好了。 现在忽略测试缓存,因为我在玩它。 只关注演示缓存。 我点击了它。 您可以在右侧窗格中看到。 这些是此特定缓存的所有设置。 它还没有开始。 因此,我将快速启动它,以便启动两个服务器。 当您从此处或从此处使用开始按钮时,它实际上会在所有缓存服务器上启动缓存。 然后,接下来我将从一些基本步骤开始; 如何知道你的缓存已经启动? 如何知道它是否健康以及如何知道它是否显示活动? 因此,这些是我们现在将采取的一些基本步骤,然后我们将在此基础上进行构建。 我们将通过把它提升到一些广泛的水平,一些高级的水平来进入它。

所以,缓存已经启动,所以第一步你可以从管理器或命令行使用,顺便说一句,所有这些都可以通过命令行完成,所以它不仅仅是 GUI 工具。 与 GUI 相比,有同样配备的命令行工具。 我将右键单击,为了检查缓存集群的健康状况,我会打开一个查看集群连接框。

查看集群连接

这实际上让我对完全连接状态有所了解。 每台服务器都有一个活动服务器和一个备份服务器。 让我向您展示一个真正快速的图表。 因为我选择了一个拓扑,所以我们有这个分区副本缓存,并且一个架构是你有一个存在的活动分区,然后有一个被动分区,其中维护另一个服务的副本。

分区副本缓存

因此,服务器 XNUMX 的主动备份对服务器 XNUMX 开放,服务器 XNUMX 的主动备份在服务器 XNUMX 上开放。 这些是主动的,这些是被动的。 这些只会变得活跃,然后就会下降,对吗? 因此,如果这发生故障,您将使其变为活动状态,如果这发生故障,您将备份变为活动状态。 因此,每台服务器都有两个分区。 我们有两台服务器,我们将有四个分区,这正是您在这里看到的。

节点间连接

因此,一个连接到自己的备份,其他服务器处于活动状态,另一个服务备份。 并且,服务器二连接到它自己的107,它是另一个服务器,另一个服务器的备份和它自己的备份。 你知道它处于一个不断增长的模式中,而且它也是完全连接的。 如果你看到了,现在让我分享一些细节。 状态消息可能未连接或部分连接或缓存服务未启动。 因此,所有这些都意味着缓存集群存在一些问题,因此直到或除非您看到完全连接状态,否则您的缓存尚未正确启动。 因此,这是第一个构建点,当您开始创建缓存时,请确保检查完全连接的缓存状态。

而且,这个输出也可以通过列表缓存使用​​。 那是一个工具,让我把它带到这里,这个缓存。 而且,如果您运行列表缓存,如果您只是运行它,使用 /a,它只会为您提供演示缓存已启动的本地信息。 但是,如果您只使用此缓存(例如 A 交换机),它实际上会为您提供 107 个端口的集群大小,107:7802 用于备份。 108:7807 和 708 并计数。

列表大小

因此,这给出了一个健康的迹象。 因此,如果您使用列表缓存,则必须查找此信息,否则查看集群连接以 GUI 方式为您提供此信息。

每个缓存都有一个缓存主机进程,因此您拥有演示缓存和演示缓存二的缓存流进程。 而且,您实际上可以查看是否添加了详细信息,例如,在此描述中,您实际上也可以看到关联的缓存。 我认为是在命令行中,但如果您在此处添加命令行列,您实际上可以看到缓存名称。 但是,我们通常依赖进程 ID,因为这对我们来说很重要,我将在接下来的幻灯片中对此进行更多解释。 所以,话虽如此,我们的缓存似乎已经启动并运行,所以这是我们的第一个构建点。

接下来是如何检查缓存上的活动,缓存是否正在接受请求的基本活动。 因此,为此您只需右键单击并选择统计信息。 这将打开 perf-mon 计数器,这些是您在 NCache 经理,但您也可以看到客户端计数器,我将详细介绍。 我有一个场景,我将向您展示不同的对象大小,我将向您展示客户端平均值以及这些平均值是如何受到影响的。 所以,这就是我在本次网络研讨会结束时安排的内容。 所以,这也将出现。 但是,只是为了向您展示事物的基本方面,让我把它带到这里,您有演示缓存和副本演示缓存和副本。 此时没有生成任何活动,因为我们没有运行任何测试,所以我们必须这样做,为此我可以运行,因为我已将我的盒子添加为客户端,我将运行命令行开始使用此工具的工具。

它也可以采用不同的参数,但现在我将只为其使用一些基本值,您可以看到每秒的请求数已经进入。 因此,我们让服务器 XNUMX 接受请求,备份没有接受请求,但计数正在更新,但服务器 XNUMX 正在接受请求,所以你可以在这里看到它,然后我们有服务器 XNUMX 的备份,它实际上是备份。 因此,正在排列一个备份分区。 所以,这实际上给了我们另一个确认缓存运行正常。

统计缓存运行

请求是均匀分布的。 你可以在这里看到每秒请求的计数器。 而且,我们还更新了备份。

所以,我们的第一步,就健康而言,基本监控是我们的围墙,然后我们可以从这一点开始前进,我们可以看看缓存是否存在问题。 我们可以得到通知,我会讨论更多的细节。

监控选项

我将快速取得进展并开始使用其中的监控选项 NCache. 所以,这就是我排好的。 昨天,我花了很多时间解释这些,然后我得到一个反馈,我们应该更多地关注动手部分,动手做事情。 所以,这就是我今天要做的。 就像我说的,我今天将在这个网络研讨会上使用不同的方式。

使用 PerfMon 计数器进行监控

所以,我们有 PerfMon 计数器。 我们有服务器端和客户端,我会告诉你这些。 我们有事件日志条目,并使用这些事件日志条目,我们有这个监控工具,可以为您提供警报。 我们有此电子邮件警报,可为您提供与电子邮件相关的警报。 然后,您还可以使用第三方工具来挂钩这些事件日志。 所以,这些是相当广泛的,当涉及到监控方面,我会说最重要的因素 NCache.

使用日志监控

然后,我们有日志。 您可以通过多种方式配置日志。 我们有服务器端日志、客户端日志,还有一个单独的工具叫做日志分析器。 然后是一个数据分析器工具,借助链接板集成,然后我们还有 API 日志,它可以实际显示单个调用所花费的时间,它只是一个即插即用选项。 而且,就像我说的,我们有第三方集成,您可以使用 SCOM 连接到这些日志,连接到这些事件日志条目,然后我们有 AppDynamics 或任何其他第三方工具,然后您可以使用 NCache 对于这一点。

NCache 监控工具 - 演示

今天,我将使用不同途径的实际演示,所以让我们开始吧 NCache 安装的监控工具 NCache. 现在你已经设置了一个请求,让我去另一个客户端,让我们实际使用一个服务器框。 服务器也可以使用客户端,因此您可以实际看到它。 让我们从这里运行一个压力测试工具,然后让我们从这里也运行一个压力测试工具,这样我们就有了显着的负载,就每秒请求数而言,我称之为显着负载。 而且,您可以看到每秒大约 XNUMX 个请求,现在有 XNUMX 多个请求,在服务器 XNUMX 和服务器 XNUMX 上每秒有 XNUMX 到 XNUMX 个请求。

现在,可以通过我们的监控工具涵盖实时和日志记录的基本监控要求。 您无需查看其他任何地方,无需查看日志,无需查看事件日志或连接任何第三方工具。 安装了一个工具 NCache 所以我建议您按原样使用它,我会给您一个该特定工具的快速演示。

预配置的监控仪表板

我将右键单击并选择监控集群,这将打开 NCache 安装的监控工具 NCache. 现在的好处是它监视您的服务器以及客户端,它不必是服务器之一或客户端,它可以是您网络中的第三个盒子。 它不必是任何缓存部署。

ncache-监控工具

因此,我们有 107、108 和 3 个客户端。 我的盒子有一些规则,因此它不允许远程监控,但您可以看到 108 和 107 计数器,您需要做的就是转到视图,确保选中这些服务器和客户端仪表板。 我的盒子会出错,这是预期的。 但是,您可以看到相同的连接框显示完全连接的状态,顺便说一下,如果有任何变化会实时改变它。 这就是这个监控工具的美妙之处,它可以实时显示所有状态。

监控工具图

CPU 图表,CPU 服务器 1 和服务器 2 在此处列出。 网络图,如果这里会显示任何网络活动。 缓存大小图,然后是每秒请求数图。 因此,就规模和网络而言,此时没有任何巨大的活动正在进行,因此您看到的值几乎为零,但就每秒请求数而言,您可以看到它是数千倍,因此大约是 3,000服务器一和服务器二每秒的请求数。 而且,我们的内存也在增加。 所以,这实际上解释了服务器一和服务器二正在使用,并且有三个客户端连接到它,然后您也可以看到客户端仪表板。 因此,108 和 107 是客户端,您会看到它们正在发送读取请求并且还有一个活动。

自定义监控仪表板

因此,这涵盖了一些预配置仪表板的实时监控方面。 但是,您不必依赖这些。 实际上,您可以提前一步创建自己的仪表板,这就是乐趣的开始。 我只想说,我的破折号,让我做一件事,只是为了让它更强大,让我向你展示另一种打开监控工具的方法。 您也可以直接从这里打开监控工具。 您需要做的就是选择服务器,它也将是远程服务器,您只需指定缓存的名称。 因此,这是您实际指定的另一种方式,现在您可以看到相同的方式,现在我们有两个客户,因为我已经关闭了一个客户。 现在您会看到实际上更多的 CPU 请求活动,因为我们只有两台服务器和两个客户端。

现在回来,您可以在 NCache 监控工具。 而且,顺便说一句,这些都是 Perf-mon 计数器。 实际上,我还将向您展示性能监控工具,您也可以在其中使用 Windows 性能监控实现同样的效果。 因此,如果您对此感到满意,请使用它。 如果您只想使用 NCache 安装的监控工具 NCache,这是另一个绝佳的选择。 顺便说一下,这是一个实时视图。 让我创建这个破折号。 因此,创建您自己的仪表板意味着您将拥有一个空面板,让我们使用 2 x 2 列,这将用于您在屏幕左侧看到的任何 perf-mon 计数器。 你有服务器端的 CPU 使用率、事件日志、集群运行状况、写入操作、项目计数等等。 此处列出了所有内容,然后您还拥有客户端计数器。

因此,它为您提供了服务器端和客户端的个性化监控,除此之外,它还为您提供了一个性能监控控件,您实际上可以将其拖放到此处。 因此,您可以添加任何性能计数器。 它可以是 Windows 性能计数器、内存、.NET 蜂窝内存、CPU、任何类型的性能相关计数器或健康相关计数器 NCache 可以在这里添加。 而且,我将详细讨论这些。 好的! 因此,我将创建另一个破折号,以便我们有两个仪表板。 我们称它为破折号二,假设 2 x 2 是大小。 这就是标准。

好的! 因此,当我们进行此操作时,我将快速向您展示第一个仪表板,并向您展示连接到它的客户端进程。 因此,这为您提供了当前连接到我的缓存的所有客户端进程的概览。 因此,您可以来到这里,使用此窗口,使用客户端 IP、进程 ID、它们连接的端口、它们连接的服务器 IP 以及发送和接收的字节数。 因此,如果您看到来自某个客户端应用程序的大量活动,您实际上也可以在此处看到连接。 可能有连接断开。 您总是会看到一个进程 ID 连接到所有服务器,因此 4016 连接到 107,4016 也连接到 108。因此,如果有任何连接问题,例如,您的工作进程启动,缓存中有三台服务器并且其中一个工作进程无法连接到服务器 3,那么如何知道呢?

进程ID连接

首先,有一些事件被触发,我将很快讨论这些事件,所以这是一种获得通知的明确方式。 但是,您会看到是否存在异常行为,是否存在缓慢或请求数量是否增加,因为如果客户端未连接服务器,客户端会将请求发送到其他服务器,并且这些服务器会重新路由该请求到另一台服务器,这可能需要时间。 因此,您可以进入此屏幕,然后选择 IP,您可以使用进程 ID 启动它,然后查看是否存在此处未列出的连接。

另一种方式是客户的数量。 因此,与其他服务器相比,其中一台服务器将在此窗口中列出的客户端数量较少。 所以,这是我想展示的一个重要工具,然后你可以看到每秒完成一些个性化的获取,每秒完成的添加,然后在破折号上,你可以来到客户端,然后你可以看到网络使用情况您通常不会在预配置的仪表板中看到的客户端的客户端 CPU 使用率。

服务器报告视图

所以,这又是为了实时监控。 历史数据呢? 记录呢? 所以,这也内置在这个工具中。 所以,你实际上可以来这里开始记录,这实际上会,然后你也可以安排一些记录,你也可以选择在这里显示副本,如果这是一个要求,那么你可以玩一些选项. 例如,选择采样率,使用图表,然后使用您实际希望在缓存中看到的事件日志。 因此,正如我所提到的,这可以让您获得实时监控。 如果请求负载即将到来,您会看到这些。 然后你可以在这个特定的时间展开。 填充所需的时间,然后这些单独的仪表板的窗口也可以更改,就像我说的那样,它有一个登录支持。

所以,这涵盖了基本的演示 NCache 监控工具,我已经为您提供了一些有关某些用例的详细信息,例如检查运行状况、检查客户端连接、请求。 请求也将添加到此处,您还将看到服务器上的活动。 因此,这是您的客户端,这是您的服务器,展示了请求负载,在此之上,您拥有连接客户端进程统计信息和连接,然后您还拥有网络和 NCP 使用情况的客户端活动。 您不会看到网络使用量很大,因为它目前不是非常密集的网络,或者可能存在一些权限问题,该仪表板未发布正在发布,但我们将对此进行调查。 但是,到目前为止一切看起来都很好。 我们正在进行一些活动,我们让客户端和服务器以一种健康的方式相互交互。 到目前为止有任何问题吗? 所以,这就完成了我们的 NCache 安装的监控工具演示 NCache.

好的! 所以,我将关闭监控工具,让压力测试工具继续运行。 我也应该使用 Web 应用程序,但这是我稍后会做的事情。

事件日志和电子邮件警报 - 演示

接下来,我将向您展示一些与健康相关的警报,为此我必须解释事件日志条目,这些条目将成为您系统的一部分,然后在您每次发生事件时定期更新。 因此,让我们转到 Windows 事件日志。 NCache..它实际上拥有大量权利,并且特定于任何事件。 例如,我们启动了一个缓存,系统的每个事件日志都特定于它自己的服务器,缓存的视图,事件 NCache 服务或该服务器的缓存主机,所以我们启动了缓存,所以第一件事是启动一个单独的进程,这就是这里发生的事情。

Windows 事件查看器日志记录

下一个事件日志是它是副本关节,因此它启动了这个副本关节,然后您将在缓存上成功启动演示缓存。 然后,108 加入缓存 108 副本加入缓存,然后这些是我们可以跳过的一些配置消息,仅此而已。 这些不相关 NCache 但就这些消息而言,它应该为您提供有关事件日志的完整信息。 而且,让我快速模拟一下我们在此处实际使用测试缓存的场景,这就是它在这里的原因,我将只启动其中一个缓存。 由于我在 107,所以我将开始 107,您会看到一些事件日志正在传播。 所以,让我们等这一切完成。 于是,就开始了。 同样,您可以使用视图集群连接,您可以看到只有一个服务未启动,但它没有任何状态,因为缓存已停止,所以它没有连接,对吧? 因此,您可以这样做,如果需要,您也可以使用监控集群单独监控它。

现在,回到事件日志。 所以,既然我们已经完成了它们应该开始测试缓存,但在启动测试缓存过程之前,我们有 107 个副本。 因此,每次启动缓存时,都会启动缓存进程,因此会有一个事件日志条目,然后有一个副本,实际的盒子开始实际缓存启动,并且它的副本加入缓存集群。 而且,您已将信息添加为其中的一部分,并且有一个实际启动的数据收集器集,但目前是我的机器.. 我已将其关闭,所以这就是我们到达那里并成功启动测试缓存的原因您应该对您的应用程序感兴趣并在此之后。 然后有一些事件 ID,您可以连接并使用任何其他工具或使用 NCache 监视那个或任何工具以获得有关它的通知。 所以,这些是事件日志。

现在,由于这些已发布到 Windows,因此每次启动缓存时,它都会停止,我将向您展示我添加了另一个节点。 您不会通过事件日志收到通知,如果我停止缓存,我会通过事件日志收到通知。 如果您的缓存已满,您将收到通知。 如果状态传输开始,网络故障就会发生,如果两个服务中断连接,每次你都会有这些更新的事件,你实际上会从那里得到它。 所以,107又加入了。 缓存已成功启动,现在 108 已加入测试缓存,108 副本已加入测试缓存。 因此,这些是再次记录的事件,然后事件 ID 保持不变,但消息很重要。 因此,您会收到通知。 而且,我会快速停止缓存,您会看到再次填充事件日志。

因此,我们的大多数第三方监控都与这些有关。 所以,既然我们已经停止了缓存,我会再次刷新,你会看到一些信息,这些是警告,对吧? 因为您的副本加入,然后节点一或二已离开测试缓存。 所以,这是一个令人担忧的情况,因为你停止了它,或者它可能会自行停止。 因此,在这种情况下,您会收到通知。

电子邮件警报

然后,我们有另一个 108 副本下降,然后主要的 107 副本下降。 而且,那是另一个条目,您应该忽略它并成功测试缓存停止。 因此,在正常情况下,当您停止它时,您也会收到此安全事件。 虽然有警告,但如果它下降,您会看到详细级别,错误级别不会更改为错误。 它不再是警告,也不再是信息。 我们单独的测试缓存过程也已停止。

因此,这些是您应该使用 Windows 事件锁以及是否有任何第三方监控的信息。 例如,我们有一个客户正在使用应用程序动态,我们帮助他们打开这些事件。 因此,他们需要做的就是使用事件 ID 开启和缓存事件日志记录,以便您与我们取得联系。 我们将为您提供所有事件的列表 NCache 日志,然后你从那里拿走它。 使用第三方监控工具也可以监控和缓存。 所以,我会关闭这个。

邮件提醒

现在,回到我们的 NCache 功能,我们展示,我们实际上将信息推送到事件日志中,但我们并没有在那里等待,我们实际上也实现了我们自己的警报系统,并且基于这些功能,它被称为电子邮件警报。 现在,您需要做的就是在缓存上启用电子邮件警报,您也可以在正在运行的缓存上执行此操作。 而且,我可以把我的详细信息放在这里,例如,Ron@alachisoft.com。 这是我必须从这里检查的东西,它是 smtp.gmail.com。 我只是在使用我的个人……我也会提供端口。 让我们保留这些信息。 而且,我将只使用我的登录名。 我将使用收件人。

我只会给自己发送一封电子邮件,我只会说缓存开始或缓存停止。 尺寸变满。 集群进入一个分裂的大脑,它被打破了。 状态转移,这是每次节点加入或离开另一个服务器时的一个过程,必须要么 redis致敬它或激活备份。 所以,就是这样的场景。 节点加入也不离开节点,对吧? 因此,您可以获得通知,您需要做的就是来到这里并应用配置。

电子邮件警报设置

我实际上不会为我的缓存这样做。 这个缓存就在这里。 我已经为测试缓存和所有事件设置完成了该操作。 我只会说应用配置,我将通过示例向您展示这一点。 所以,我就开始吧,对吧? 我才开始 107,我会带回事件日志,如果我只是刷新它,就会有一些信息,所以成功启动了。 107 已加入。 测试缓存已成功启动。 而且,您可以忽略错误消息。

现在电子邮件警报呢? 所以,为此我必须回到我的机器上,就在这里,我期待应该启动一封电子邮件。 请忽略这一点。 因此,您将以电子邮件警报的形式收到相同的事件,但这次 NCache 正在使用这些事件并向订阅它的收件人发送电子邮件警报。 所以,你可以看到.. First Alert,实际上有很多警报。 所以,我们有 107 个加入了测试缓存,然后我就使用这个窗口,就在这里。 不必打开它。 成功启动。 108 人加入。 实际上,这些是一些旧事件,所以让我使用 1133,是的,这些是因为这些警报是开放的,所以我正在基于它进行测试。

好的! 所以,让我们关注1133。所以,107副本已经加入,然后测试缓存启动成功。 因此,我将回到这里并快速启动 108,并向您展示这实际上会同时触发电子邮件警报和事件日志条目。 现在这是我们自己实现的 SMTP,但在幕后我们使用的是事件日志,对吧? 所以,你也可以这样做。 再次,我将在这里刷新。 有条目,对吧? 因此,106 和 106 再次记录了两次,如果我回到这里并在此处进行发送接收,我应该能够再收到两封电子邮件,甚至更多,因为我还有状态转移和其他事件。 如果缓存中有一些数据,你也会有这些事件。 所以,你去吧。 所以,108 测试缓存启动 测试缓存启动成功,这是针对 108 的,对吧? 所以,我只是再发送一次,以确保没有更多的电子邮件。

因此,您可以在出现任何问题时通知系统管理员,让我们实际模拟问题。 如果节点 107 出现故障怎么办,对吗? 或者,如果有连接中断。 我们不能在这里真正模拟连接中断,但我们可以模拟节点关闭,我刚刚做到了。 因此,首先,它实际上会在事件日志中向您显示事件。 有警告,对吧? 而且,让我们看看电子邮件警报是否会引起人们的注意。 我希望这很简单。 我只是强调一些基本功能,就健康而言,您可以使用这些功能并获得环境监视器。 因此,您实际上可以看到节点离开了,然后生成了 107、XNUMX 事件日志。 因此,您可以根据需要在此处放置一个收件人列表,或者它可以是一个组,但请确保每行指定一个收件人。 好的?

所以,另一个应该是 support@alachisoft.com 或者它可能是 kal@alachisoft.com。 所以,所以你实际上可以从那里拿走它。 这就是开始使用电子邮件警报的简单方法。 NCache 监控工具。 我们已经介绍了事件日志。 我们已经涵盖 NCache 电子邮件警报。

NCache 日志 - 演示

接下来是 NCache 日志这是一个稍微高级的话题,但我会花尽可能多的时间在日志上,我们可以从那里开始。

我将停止此缓存,因为测试缓存是我一直在使用的缓存,同时在此停止时让我打开一个应用程序。 我很抱歉文件夹结构。 我从另一个环境中复制了它,所以.. 好吧! 所以,让我打开我的视觉工作室。 本节我不需要它,但我会保持打开状态,以便在等待缓存停止时做好准备并向您展示其中的日志记录功能 NCache. 打开一个网站。 由于某种原因,这非常慢。 我在等它的同时让我回到这里。 我认为这是因为视觉工作室不应该这样做。 无论如何,让我看看我是否可以关闭它。 好的! 所以,回到这一点,我们已经停止了测试缓存,对吧?

因此,我将向您展示其中的日志记录功能 NCache. 因此,日志得到维护,这些是缓存日志。 我可以摆脱这些,至少这些。 已停止、启动的缓存实际上现在可以删除它们。 所以,我会重新开始,这些是正在运行的缓存,不要删除你的日志文件。 我只是为这个特定的演示做的。 我将在这里启动一个节点,向您展示在服务器端创建的日志文件,并为您提供一些有关它的详细信息。 理解日志文件需要一些关于集群和框架的高级信息。 NCache. 所以,我只谈一些基础知识。

使用 LogViewer 工具进行日志分析

现在我们已经创建了一个缓存,启动了测试缓存和副本,我已经启动了它,所以我将利用这个机会实际打开日志到日志查看器。 所以,如果你去 bin、Tools、GUI 有这个日志查看器工具,它是随 NCache. 您可以使用任何记事本、写字板、记事本++,但这实际上可以帮助您按读取、时间戳、记录器级别对其进行排序,然后还可以查明消息。 所以,我就开吧。 它会将您带到同一目录。 我将在这里打开测试缓存,您可以看到那里的所有日志。 所以,我们有……顺便说一句,这是一个非常有趣的工具。 你可以使用不同的字段和节点,对吧? 然后,您可以提供基于此的过滤器。 因此,这里指定了一个过滤器。

服务器端日志

因此,我将向您展示一些基本的细节。 我们有操作参数,107、7805。副本将始终为 7806。无论您指定端口,下一个都是副本。 因此,它安装了视图,它是第一台服务器。 因此,7805 是唯一的服务器。 因此,每次服务器启动时,它都会与集群层对话并获取视图。 因此,它使用自己作为协调器进行安装,您会看到 7805 107 正在使用它自己的视图。 查看 ID 为 0,然后成员加入事件。 这些又是相关的事件日志。 并且,然后您会在这里看到很多信息消息,然后副本必须已加入此处。 7805,你现在可以看到它已经加入了 107 和 7806。所以,副本已经加入。

因此,每台服务器都会启动,它会尝试找出其他可用的服务器。 如果没有可用的服务器,它将作为第一台服务器启动,然后启动其副本并创建一个单节点缓存集群。 并且,然后你会看到一个缓存,状态转移事件,然后缓存初始化。 它成功启动了。 所以,在这里,在这个事件之前,如果你看到一些这样的错误信息,不要担心,因为它正在尝试连接到其他服务器,而其他服务器可能还没有,因为 108 还没有启动。 所以,它确实尝试连接到它,但它没有得到任何响应,此时我会很快来到这里,我将使用压力测试工具,它的新实例。 我还将向您展示客户端连接事件。 而且,顺便说一句,我们设置的所有事件日志、所有窗口、电子邮件警报仍然完好无损,对吧?

所以,让我把它关掉然后回来,就像我说的你也可以通过记事本++打开它。 只需使用记事本打开相同的工具。 现在,打开了相同的日志文件,但这次我们也启动了一个客户端,到最后,您也会看到一个客户端连接框。 让我把它带到这里。 所以,盒子的IP,盒子的名称,GUI和一个进程ID都连接到缓存中。 因此,一台服务器,您会看到客户端已连接。 现在,一个场景可能是如何知道缓存中是否有任何问题。 因此,您会在此之后看到错误消息,这表明他们的错误消息。 在此之前的错误消息只是一个发现。 所以,这些都是很正常的,直到或除非你看到很多这样的错误信息。 您会看到一些错误,但这些只是发现消息。

现在,我将启动此缓存,我将向您展示此服务器的日志以及服务器的日志,并向您展示它是如何变化的。 现在,已经开始了,所以我需要做的就是回到这里,让我们看看它是否刷新,它没有,所以我就回到这里看看这个服务器的日志。 所以,现在108已经开始了。 所以,你会看到更多的活动。 最后一个条目在哪里? 让我看一下。 好的! 所以,我们把它作为一个损失条目,对吧? 现在,108 的加入权限并开始加入。107 安装了一个具有 107、107 和 108 的视图。而且,现在 108 副本也将加入,然后您将拥有另一个视图,该视图将具有 107、107 副本 108, 108 复制品。 而且,你会看到状态转移开始和结束,所以一切都很顺利。 因此,新服务器加入,所有这些都记录在事件日志中,正如前面所示。

现在,我将只向您展示服务器 2 的日志文件,以便您了解一些详细信息。 另一台服务器如何……因为另一台服务器已启动并且服务器已经在那里。 因此,我将向您展示通常以修改日期开头的日志文件,以便您在顶部拥有最新的文件。 我希望我会。 测试缓存在哪里? 给你! 这个盒子上还有其他缓存运行。 我认为时间显示不正确,但让我看看。 好的! 所以,无论如何,让我们以此为例,因为我的时间不多。 所以,这需要时间。 所以,108 开始了,此时,它实际请求了。 所以,它一定是一个单一的节点,对吧? 但是,在这种情况下,您实际上会看到加入权限。 所以,我实际上不会使用这个。 我无法查看它的日志文件,好吧!

我知道发生了什么事。 我正在查看本地日志文件夹,所以必须有来自发生的日志文件,对吧? 因此,查看修改日期,这是实际的日志文件。 我为此道歉。 好的! 所以,现在 108 开始了,你可以看到它确实尝试过但失败了,所以你实际上会在这里看到一些错误消息。 出现这个错误是因为它不是第一个,它的副本不存在所以它不是第一个。 所以,你看到那里 107,它已经开始了,所以它给了它视图,然后状态传输开始了。 这些是一些桶信息,然后成员加入缓存集群,好吧!

因此,查看日志文件就是这么简单,但是,就像我说的那样,根据用例,根据您正在处理的问题,这些可能会变得复杂,而且我们也有副本日志文件。 所以,她与我们分享错误对她有好处,我们实际上可以帮助您更多地理解它。 因此,每个具有时间表的服务器都可以在日志文件中看到记录的问题。 我会很快回来的。 我还有一些时间,所以让我向您展示另一个场景......让我看看我是否可以打开监控工具。

API 日志

现在,在监控工具中还有另一种日志文件,所以对于这个特定的缓存,让我们使用它。 让我们创建一个新的仪表板。

好的! 如果存在您的服务器需要更多时间来完成某些请求或速度缓慢的情况,如何解决? 因此,一种方法是查看应用程序的性能计数器以及 NCache perf-mon counters 老实说是下一节最后一节。 但是,这个日志文件实际上可以帮助您确定我们有这个 API 日志。 因此,如果您只是打开监控工具并拖放 API 日志,它会使用首选项,它实际上会在此处记录信息,所以我只会说启用文件日志记录,打开它然后我想运行它。

性能计数器

因此,您需要模拟测试,假设您的测试需要 15 分钟,并且您在生产环境中重现问题,如果您在特定时间看到速度缓慢或者您不确定是什么应用程序导致速度缓慢,那么调用是导致缓慢,应用程序中导致缓慢的方法是什么,您实际上可以借助 API 日志查明这一点。 所以,你需要做的就是运行它。 它会转储所有信息,然后在问题重现后停止它,然后通过此查看它,您可以在其中看到时间戳。 服务器节点。 发起请求的客户端、客户端 ID 和执行时间。 所以,这个执行时间是这里最重要的因素。 此时它是亚毫秒级的,但是,如果我们模拟负载,我们再次使用测试缓存为 /M 1 024 的场景说压力测试工具,这肯定会使用更大的值,对吗? 你可以看到 0.03,对吧? 0.07 所以……让我关闭其他压力工具。 是的! 你现在可以看到,时间已经过去了,对吧? 0.02,对吧? 而且,您实际上可以看到服务器端记录的任何错误。

api-logs-时间

因此,任何失败、失败都是显而易见的,可以记录在日志文件中,但可以借助此功能映射缓慢。 而且,如果我带你回到这里,在这个文件夹 API 日志中,有一个日志文件,它保存数据的历史跟踪。 所以,前几个平均值是 0.02、0.01,然后到最后你会看到一些增加的值,对吧? 这样一来,您就可以指示此特定呼叫缓慢的时间。 我需要验证该方法,然后您需要在您的应用程序中与该方法相关联。 所以,我认为这是可以使用的东西,我们一直使用它来调试我们的客户环境。 检查时间,让他们重现我们面前的问题,启用日志,然后在它之上,这也可以与客户端日志相结合。 在您的客户端安装中,您可以指定日志,例如,如果我转到客户端部分 NCache 在 Web 服务器所在的客户端机器上,有这个启用日志,对吗?

客户端日志

因此,每个缓存都有这个启用客户端日志标志,您可以打开它。 因此,这实际上也会创建客户端的日志文件,类似于您所看到的日志文件。 所以,我认为这有助于记录方面的事情。 我将再花 10 分钟,然后我将总结性能计数器,因为这是我们拥有的最重要的部分。

NCache 性能监控(场景)

如何进行性能监控 NCache? 我希望这不是太多的信息。 我一直保持基本,但场景与您的日常用例一致。

通过 PerfMon 进行实时监控

现在,回到性能监控, NCache 给你两种计数器。 这些是 PerfMon 计数器,所以你可以说 PerfMon 并希望里面有性能监视器 NCache 让我在这里关闭它并快速运行这个工具,以便我们节省时间。 所以,如果我打开性能计数器,我们有 NCache 类别,对吧? 在下面 NCache 类别,我们有我们需要的所有计数器。 平均值非常重要。 这为您提供了在缓存中添加、获取、插入的平均时间。 所以,我会使用所有这些,对吧? 并且,选择 Add 并选择 OK,然后我将向您展示这些性能平均值。

ncache-性能监控

所以,你看到 fetch 的平均微秒是 27 微秒,insert 的平均微秒是 65 左右。 但是,客户呢?

性能计数器数字

所以,让我们看看客户端计数器,它需要多少时间才能完成一个操作。 所以,你选择 NCache 客户端类别,为客户端选择测试缓存,然后选择添加。 所以,在下面,你会看到 NCache 客户部分也是如此,这是最重要的,因为这为您提供了 NCache 客户端执行者估计。 它为您提供项目大小,因此为 1024 它为您提供平均每次获取 718 微秒,这是应用程序内部序列化的总时间和应用程序,如果压缩是在压缩,如果加密是在加密然后通过电线,存储在那里,因此包括服务器时间,然后它回来然后反序列化。 所以,那是手术的时间。 对于 fetch,它只是反序列化。 对于插入,它也是这种序列化,您实际上可以看到插入的每个序列化的平均微秒和提取的每个反序列化的平均微秒。

ncache-客户计数器

而且,您还可以围绕这些启用日志,这就是我现在实际要做的。 我会看看我能不能打开,出于某种原因,我们应该你对我死心了,但让我们看看我能不能做到。 而且,在这个特定的场景中,我的想法是,我有一个 Web 应用程序……好吧! 这是这样做的……我有一个我希望的 Web 应用程序……好的! 有一个问题。 这些可以吗 NCache 计数器可以远程访问吗? 当然! 我一直从服务器和客户端访问计数器,因此如果您可以远程访问这些服务器,则允许 perf-mon 访问。 你实际上可以这样做。 所以,不是问题。 因此,它通常是一台服务器作为监控服务器来处理所有这些任务。 我应该事先打开视觉工作室并生成应用程序,但我没有,所以这就是导致问题的原因。 我希望这次能奏效。 给你! 我想我们实际上并不在那里。 所以,让我把我的项目目录...请多多包涵。 我只需要一分钟。 这是一个非常有趣的部分。 我真的很想展示这个。 让我们看看这是否被拾起。 给你!

记录 PerfMon 数据收集器集

现在,这个应用程序的设计方式是让我可以尝试不同的对象大小,对吧? 并且,基于此,我将记录性能计数器并向您展示对象大小如何增加以及性能如何下降。 因此,这实际上会在您的应用程序中呈现一个用例,如何获得通知或如何知道何时出现应用程序问题。 所以,我要做的是开始记录,对吧? 所以,我将只使用压力工具来检查我是否能够连接到我的缓存。 我只需要五十分钟,所以请让我知道我们是否准时。 如果有任何问题,我们总是可以的。 所以,我认为我们在这方面做得很好。 我刚刚运行了它,这样我们就有了……所以,这实际上应该启动我的应用程序。 给你! 而且,现在我将在这里使用我的机器。 而且,我将开始记录 perf-mon 计数器,为此您可以使用实际的用户收集器集。 对于实时监控,有 perf-mon 计数器,对吗? 您实际上可以单击此处并将它们添加到生活中。 但是,这对于解决问题确实无济于事。 当应用程序执行缓慢时,如何解决?

所以,我只是创建一个数据收集器集,对吗? 测试11,对吧? 我手动创建,使用性能计数器,我将使用采样间隔为一秒并添加 NCache 准确地说是客户计数器,因为这是我的应用程序框。 你也可以使用另一件事。 让我补充一下 NCache 柜台 NCache 客户。 让我再使用一次压力工具,以便启动这个测试缓存。 给你! 添加,我现在可以关闭压力工具,选择好的,与此同时,我希望......好吧! 事情发生了。

视觉工作室性能监控

反正! 因此,我将在此浏览中快速选择下一个并选择一个我可以选择的友好位置,例如,让我们使用它并选择 Okay、Next、Save and Close。 并且,因此创建了测试 11。 您实际上可以来这里启动收集器集,与此同时,由于某种原因,我的 Web 应用程序没有运行。 所以,我会再运行一次。 有趣……好吧! 即将展示发生了什么。 我应该真的运行它。 这就是我昨天所做的,它工作得非常好,所以我会试一试。 我想我有一些管道模式问题,所以它不会运行,所以我会跳过这个。 我能做的是我可以给你看我昨天使用的这个数据。 所以,如果我来这里,这个设计是这样的,我们有三种测试,对吧? 10 KB、50 KB、100 KB 和 10 500 KB 所以如果你通过 10 KB 对象,它实际上模拟了 10 KB 的 Get 和 Inserts 的负载,所以我运行了 10 KB、50 KB、100 KB、500 KB 和然后我会记录计数器,对吗? 所以,在 E 里面,测试一个。

好的! 给你! 所以,我运行了这个测试,我真的很想展示这些问题,所以如果我只是说 control+A,隐藏选定的计数器,然后用于测试缓存,它实际上也消耗了所有其他计数器。 因此,您首先检查平均项目大小,因此首先测试运行 1 KB 10 KB 再次运行 10 KB 然后运行 ​​50 KB 然后 400 KB 最后我运行了 500 KB。 所以,这就解释了项目的大小。

物品尺寸

现在让我们看看获取的平均时间。 因此,有一个计数器,称为每次获取的平均微秒。 所以,你可以看到它在一段时间内增加了,对吧? 因此,为这些获取然后相同,因为这是相同的,然后随着您添加项目大小增加。 获取该项目的时间也随之增加。 但是,既然你正在获取它,那么它应该有一个反序列化开销。 所以,这就是这里。 所以,大部分时间实际上都花在了反序列化上,所以你实际上可以在旁边绘制反序列化。 所以,这些大部分时间都花在反序列化上,这就是为什么它很慢。

反序列化图

现在,我只看一下插入平均值,每个插入的平均微秒,你会发现这也会随着......你去! 因此,我们插入需要一些时间,并且随着您添加项目大小增加并且插入需要时间。 所以,在您的应用程序中,如果您看到应用程序正在变慢,对吗? 因此,您记录这些计数器,然后检查它是序列化、反序列化、获取还是插入或删除,或者是实际增长的请求队列大小。 因此,每次有活动时,请求队列大小中都会有一些项目,您会看到每次处理时这些项目都会被清除。 所以,对于插入,让我们看一下每个序列化的平均微秒,这就是开销。 让我把它变成红色和彩色,你可以看到实际上影响平均值的是序列化。

序列化图

因此,客户端每次插入、获取、删除的总体平均微秒数可以让您估计应用程序所展示的性能,同时您可以记录这些计数器然后查看。 不幸的是,我无法运行我的应用程序,但这是从昨天开始的。 我昨天有一个网络研讨会,我成功地运行了它,我们再次以 10 KB 运行它,10 KB、50 KB、100 KB 和 500 KB。 因此,我们可以看到性能之间的不同差异,这是解决您检查和缓存计数器的任何性能问题的方法,这必须与您的应用程序计数器相结合,因此您始终需要同时选择您的应用程序计数器。

例如,您可以看到 Web 应用程序的 ASP.NET 计数器,对吗? ASP.NET 应用程序。 通常,对于 .NET CLR 内存,我们还会查看是否存在内存争用应用程序可以关闭。 因此,您可以记录系统计数器,然后记录 NCache 像我一样计数器,然后从那里取出它,这样就完成了我们的性能监控部分。

结论

我们比我们的常规时间标记高出大约五分钟。 我希望这没问题,因为这些问题。 这是一个动手实践的网络研讨会,因此,预计您会看到此类问题,但只是总结一下,我们创建了一个缓存,我们向您展示了 NCache 监控工具、运行状况、事件日志条目、电子邮件警报、 NCache 日志、日志分析器工具、客户端 API 日志,然后我还向您展示了服务器端可用的 perf-mon 计数器。 服务器端计数器用于服务器端统计,客户端计数器用于客户端统计。 我没有花很多时间解释这些计数器。 我应该这样做,但我会在下一次针对同一主题的网络研讨会上这样做。

最后,我向您展示了如何通过使用尖峰或使用 perf-mon 计数器记录来查明任何问题 NCache. 我希望它内容丰富,很有趣。

接下来做什么?

 

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。