结帐性能结果 NCache 在分布式环境中。 这些测试是在 Amazon AWS 环境中进行的。
在我们最新的基准测试中,我们成功地证明了 NCache 只需一个 2 台服务器的缓存集群,就可以线性扩展并实现每秒 5 万个事务。 NCache 以亚微秒延迟提供这种性能。 可扩展性是线性的,这意味着如果您添加更多缓存服务器, NCache 将提供更高的交易吞吐量。
观看实际的基准测试视频,以便了解这些基准测试是如何完成的。
在这个视频中,我们将谈论 NCache 性能基准测试数字。 NCache 是一个非常快速和可扩展的 内存中分布式缓存 .NET 系统和 .NET Core 应用程序,今天我们将实现每秒 2 万次操作,同时保持每次操作的延迟小于 3 微秒,只需 5 NCache 服务器。
NCache 超出这一点是线性可扩展的,这意味着您可以根据需要添加任意数量的服务器,并且当您添加更多服务器时,您将获得更多的请求处理能力,超出您的 缓存集群 这也是线性的。
让我们回顾一下我们的基准设置。 我正在使用'AWS m4. 10xlarge' 服务器用于我的测试。 我有这五个 NCache 服务器,我在其上配置了我的缓存集群,我有 15 个客户端服务器,我将从那里运行我的应用程序并连接到这个缓存集群。
我使用 Windows Server 2016 作为操作系统,数据中心版 64 位。 NCache 版本是 5.0 Enterprise,我正在使用 NCache 分区缓存,作为缓存拓扑。
这是此拓扑的架构图,其中我们将数据完全分布在分区中,在所有缓存服务器上,客户端连接到所有服务器以进行读取和写入请求。 他们也同时充分利用了所有服务器。 我们没有为此拓扑打开复制,但还有其他拓扑,例如 分区副本缓存,它还配备了复制支持。
我有...... 流水线 启用。 这是一个新功能 NCache 5.0 版。 它的工作方式是,在客户端,它会累积在运行时发生的所有请求,并在服务器端立即应用这些请求,并且累积在微秒内完成。 因此,它非常优化,非常推荐在您有高事务负载要求时进行设置或配置。
就负载配置而言,我们总共使用 1 万个项目,这些项目将被添加到缓存中,然后您知道,以 80% 的读取和 20% 的写入率模拟读取和写入请求负载缓存。 而且,我们有每个 100 个字节数组,作为缓存中的单个项目。 我每台服务器有 4GB 的缓存大小,我们总共有 30 个应用程序实例,它们将连接到缓存。
因此,毫不拖延地,我将开始使用我的 1 万个项目的“数据填充” 缓存集群. 现在,这是我们的演示环境。 我们有 5 NCache 服务器,如前所述。 目前没有任何活动,但我将模拟一个客户端应用程序,该应用程序将连接并在缓存中添加 1 万个项目。
因此,我已经运行了该应用程序,您会看到所有缓存服务器上都连接了 1 个客户端,并且我们在所有服务器上都有每秒添加计数器的活动。 缓存大小在增加,计数计数器也在增加,每秒请求数是每秒的请求总数。 而且,您可以在缓存集群中添加 1 万个项目。 我现在可以开始读取和写入请求负载,如果我快速向您展示监控详细信息,您会看到 CPU、内存、每秒添加数和每秒请求数的增加以及同样在计数计数器中,缓存大小也增加了。
我现在将运行应用程序以在此缓存集群上构建一些事务负载,其中包含 80% 的读取和 20% 的写入操作。 所以,让我们快速做到这一点。 而且,您会开始在 PerfMon 计数器中看到所有缓存服务器的活动。
您可以看到客户端的数量显示大约 10 个客户端,您知道,实例连接到每个 NCache 服务器,在 Fetches 和每秒更新数上都有活动,每秒请求数计数器在每秒 180,000 到 190,000 个请求之间。 而且,因为我们有 5 NCache 服务器,它们是并行工作的,所以,累积这些请求会给我们带来,你知道的,这个缓存集群每秒有 1 万个请求,你可以看到非常一致 数据分布.
Web 监控统计数据非常健康,您知道,系统内存和 CPU 非常低,每秒获取数和每秒请求数,显示每秒 200,000 个请求,每秒大约 150,000 个获取数。 更新为每秒 50,000 次更新。 而且,每次缓存操作的平均微秒时间略小于每次操作 10 微秒。 而且,这是这个 Cache Cluster 最好的地方,它在内存中,它确保您从您的缓存中获得低延迟和高吞吐量 NCache 缓存集群。
我们的第一阶段已经完成,我们从缓存集群中成功实现了每秒 1 万次操作。 我有一个截图供参考,我们每个人每秒有 200,000 个请求 NCache 服务器,我们有 5 个 NCache 服务器,同时保持每个缓存操作延迟小于 10 微秒。
因此,每个操作的速度都非常快,并且我们有相当一致的每秒获取和更新组合,以展示真实的应用场景,同时我们可以非常有效地利用 CPU 和内存,其中对于这个特定的测试,我们对这些资源的利用率非常低。
现在我们已经实现了每秒 1 万个请求,是时候增加负载了。 因此,我会运行更多的应用程序实例,以增加事务负载,一旦这些应用程序运行,您就会看到每秒请求数计数器的增加。
首先,您可以注意到客户端数量为 20。20 个实例连接到所有 NCache 服务器和我们的每秒请求计数器现在显示每个每秒 300,000 个请求 NCache 服务器,我们已经从这个缓存集群成功地实现了每秒 1.5 万个请求。
让我快速向您展示 网络监控工具, 用于性能统计。 您可以看到每台服务器每秒的请求数,每秒 300,000 个请求。 每秒获取数略高于 200,000 次,更新数在 50,000 到 100,000 之间。 您可以看到每个缓存操作的平均微秒时间小于 4 微秒,这太棒了,因为我们的延迟非常低,这是“流水线'。 当您有来自客户端的高事务负载时,流水线确实有助于减少延迟并提高吞吐量。 这就是为什么,我们可以建议将其打开。
我们的第二阶段现已完成,我们已经从缓存集群中实现了每秒 1.5 万次操作。 这是此结果的屏幕截图。
我们现在每人每秒有 300,000 个请求 NCache 服务器。 所以,这已经增加了,我们的延迟也减少了。 我们平均每个缓存操作微秒,现在每个缓存操作大约需要 3 到 4 微秒。 因此,这是一个巨大的改进,而且,我们再次将 Fetches 和 Updates 混合在一起,并再次保持较少的 CPU 和内存利用率。 所以,我们的服务器此时并没有被最大化。 我想澄清一下,你可以进一步拉伸负载,我们接下来会这样做。
在达到每秒 1.5 万次请求后,我不会停在这里。 让我们进一步增加负载,让我们看看如何 NCache 缓存集群因此而运行。 因此,我正在运行更多应用程序实例,您会看到每秒请求数计数器进一步增加。 您可以看到 30 个客户端,您知道,实例现在已连接到所有 NCache 服务器,我们已经看到每秒请求数计数器的增加。
你现在可以看到,我们已经成功地触及了每秒 400,000 个请求 NCache 服务器。 我们有 5 个 NCache 因此,服务器每秒总共发出 2 万个请求 NCache 缓存集群。 因此,通过增加客户端的事务负载,您可以清楚地看到, NCache 已达到每秒 2 万次请求。 而且我们每个缓存操作的平均微秒时间小于 3 微秒,而且我们还有系统内存和处理器时间,你知道,CPU 远远低于限制,我在这两个方面都有 40% 到 50% 的利用率。
如您现在所见,我们已成功实现每秒 2 万次操作。 因此,让我们在屏幕截图的帮助下查看这些结果。
我们现在每人每秒有 400,000 个请求 NCache 服务器,每秒总共产生 2 万个请求,而且令人高兴的是延迟进一步下降。 我们现在每个缓存操作延迟为 2 到 3 微秒,这再次比之前的结果有所改进。 您可以再次看到 Fetches 和 Updates 的混合,以及 CPU 和内存资源的高效利用。
就像我说的, NCache is 线性可扩展,所以,让我们回顾一下我们的可扩展性数字。 你知道,通过增加服务器的数量,你可以看到 NCache 以相当线性的方式向外扩展。 有 5 NCache 服务器,我们能够达到每秒 2 万个请求,并且您可以添加越来越多的服务器,并且这种趋势将进一步呈线性,其中更多的服务器意味着更多的请求处理能力,超出 NCache.
这使我们接近视频的结尾。 所有这些测试结果和示例应用程序都可以在我们的网站上找到,您可以在您的环境中自行下载和查看。 如果有任何问题,请随时与我们的销售人员联系(sales@alachisoft.com) 以及在我们的支持下 (support@alachisoft.com) 团队。 非常感谢您的宝贵时间。