我正在研究的系统的SRS包括以下非功能性要求:“SuD应可扩展到200个并发用户”。如何将此语句转换为更具可测量性的特征:“每秒点击次数”?
答案 0 :(得分:3)
如果不了解您的应用或其功能,那么无法回答。您需要弄清楚一个用户在使用该应用时可能产生的每秒点击次数,并乘以200。
很明显,点击次数/次数并不是您需要关注的唯一指标。有200个并发用户会有多少内存开销?磁盘访问或打开文件处理多少?有多少db读/写?带宽多少(应用程序涉及流媒体)?这一切都可以由一台机器处理吗?等等
答案 1 :(得分:3)
假设您正在谈论一个Web应用程序(基于您希望每秒估计“命中率”),您必须处理许多假设。 - 用户在互动之间花费多长时间?对于典型的内容页面,可能是10秒;对于交互式网络应用程序,可能只有5秒钟。 - 将用户数除以“思考时间”以获得每秒点击次数 - 思科时间为10秒的200个并发用户平均可以为20个并发用户提供服务。 - 然后乘以“峰值乘数” - 大多数网站在夜间相对安静,但在晚上7点左右真的很忙。因此,您的平均数量需要考虑到这一点 - 通常,我建议峰值在4到10倍之间。 这为您提供每秒峰值页面请求 - 这通常是Web应用程序的限制因素(尽管并非总是如此 - 例如,流式视频通常受带宽限制)。 如果你真的想知道“点击”,那么你需要完成以下工作: - 您网页上有多少资产?图像,样式表,javascript文件等 - “点击”通常是指任何类型的请求,而不仅仅是HTML页面(或ASPX或PHP或其他)。大多数现代网络应用程序包含数十种资产。 - 您的网页和/或资产有多缓存?大多数图像,CSS,JS文件等应该被浏览器设置为可缓存。
将页面请求乘以不可缓存资产的数量。如果您想要超精确的话,请将访客数量乘以资产数量。
所有这一切通常意味着你必须做出许多假设 - 因此最终的数字最多只是一个指标。对于可伸缩性测量,我通常花费更多时间来了解系统中的瓶颈并观察负载下的系统。