- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 R Shiny 中创建一个企业范围的表单输入解决方案,该解决方案将针对大约 400 个用户。
我的问题是(简而言之):由于 R 是一个单线程进程,我是否需要 200 个内核(假设每个内核两个线程)来支持最多 400 个并发用户?如何指定基础设施要求(当前是 32GB 内存,4 个 CPU)?
如前所述,有没有复杂的 R 模型 等在后端这基本上是一个数据库接口(interface),数据处理最少,所以应用程序非常轻量级,我主要关心的只是并发用户的数量。这也是一个本地解决方案。
我正在使用带有 Docker 网桥的 ShinyProxy 的容器化版本来与应用程序镜像进行通信。
任何意见将不胜感激。
最佳答案
如果您想绝对确定给定用户永远不会因为 R 进程被其他人使用而遇到延迟,那么是的,您需要 400 个线程来处理 400 个并发用户。
在实践中,如果(如您所说)该应用程序没有很多计算密集型功能,那么您可以使用更少的内核来摆脱困境。例如,如果用户计算某个函数需要 200 毫秒,那么在任何人注意到显着(例如 1 秒)延迟之前,您将需要同一线程上的少数用户同时运行此类函数。如果不涉及大量计算,则更有可能在用户体验受到负面影响之前每个线程处理数十个并发连接。
说了这么多,我对 ShinyProxy 的理解是,它会为每个新连接启动一个新实例,因此并发用户的数量可能会受到核心数量的限制。在这一点上我并不完全清楚。但是,如果是这种情况,并且假设模型有数百个连接但处理要求很少,我认为更好的方法可能是少数 Shiny Server负载均衡器后面的实例。服务器不需要特别强大(无论如何您只使用一个线程)。每台服务器可以handle >100 connections (不知道有没有上限)。
总而言之,在我看来,ShinyProxy 在您运行计算密集型应用程序的连接较少时会更好,而当您与计算量不大的应用程序有更多连接时,Shiny Server(甚至是免费版本)会更好。
在指定基础设施要求方面,shinyloadtest 是一个不错的起点。 .
关于r - ShinyProxy Docker - 最大线程数(最大并发用户数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63298850/
This question already has answers here: Using Variable for Thread group Ramp up time (3个答案) 3年前关闭。 从
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
如果我想以每秒 10 个请求运行测试。如何让 Jmeter 选择每秒处理该请求数所需的最佳线程数。 我将线程数设置为与每秒请求数相同。 最佳答案 您可以使用恒定吞吐量计时器 click here你只需
我正在尝试进行查询以检查客户表并返回过去 30 天、过去 365 天和所有时间具有特定值的用户数。 所有时间的计数很简单: $stmt = $conn->prepare("SELECT count(i
我是一名优秀的程序员,十分优秀!