testing - 在小型商店中对服务器应用程序进行负载测试(即模拟大量客户端)的推荐策略是什么?

标签 testing virtualization

我开发了一个基于网络的多组件软件系统,旨在在任意数量的机器上运行。我假设有 1 到 4 台机器的典型设置。

我想认真的测试一下系统,我在一台功能强大的PC上架设了一个虚拟机网络,可以用来模拟网络交互。但是,该设置还不够。

例如,由于虚拟化(我使用 qemu),每个节点总是只在一个核心上运行,所以我无法测试为多核使用而设计的代码的性能问题。如果我有时可以在整台 PC 上运行任何一个虚拟机,看看它有什么不同,尤其是在性能方面,同时检查一些多线程问题,那就太好了。

购买更多盒子和使用硬盘分区而不是虚拟磁盘镜像是选项,但有没有更优雅的方法?我在这里创办一家公司,目前还负担不起大量的硬件,而且必须处理每台机器的真实物理媒体,而不是仅仅移动图像文件,这肯定是更多的工作。

ETA:应用程序是一个中间件系统,并没有真正的用户界面。测试是通过虚拟客户端完成的,并将数据输入到另一端再次提取的系统中。它不是网站,通常不在 Internet 上使用,而是在本地网络中使用。一些连接到系统的组件将在稍后阶段提供 UI 和 Internet 界面。

最佳答案

到目前为止,这个话题已经在 SO 上出现过几次:

有许多工具可以进行网络压力测试,但您可能需要调整它们以修复您的网络配置。例如,我正在从事一个涉及大量流媒体内容的项目,因此我们必须编写自己的流媒体客户端来测试网络。

另一件事是,您可能需要设置一个小型网络来测试您的生产网络——网络负载测试工具也需要相当多的 CPU,因此您通常需要多台机器同时运行它们才能真正发挥作用网络。在我们的例子中,我们有一个 1:2 的比率——也就是说,我们要测试的每 2 个服务器有 1 个测试客户端。您将不得不尝试一些事情来确定您需要多少个测试箱,但只需关注测试机的性能,这样您就可以了解需要多少个才能进行有效的基准测试您的网站。

关于testing - 在小型商店中对服务器应用程序进行负载测试(即模拟大量客户端)的推荐策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/510646/

相关文章:

c# - 如何使用 OpenCover 代码覆盖率在 VisualStudio 中运行 NUnit 测试?

java - CountDiv (Codility) 挑战算法的性能问题

node.js - Cypress CLI 控制台输出不太可读

linux - Vagrant-lxc 容器未启动

macos - 如何在 Mac 上为 Qemu 启用 KVM?

linux - 在虚拟机中启用 VT-x

testing - TDD 单元测试子方法

c++ - 单元测试 C++。如何测试私有(private)成员(member)?

virtualization - 虚拟机保护

virtualization - 为 vmware 付费还是使用开源?