如何在Shiny Server开源版中限制每个进程的Shiny会话数为1
Shiny Server开源版单进程会话数限制配置说明
是否支持限制每个进程的会话数为1
支持,Shiny Server Open Source原生支持该配置,无需额外安装扩展组件。
具体实现步骤
- 编辑配置文件
Shiny Server默认主配置文件路径为/etc/shiny-server/shiny-server.conf,使用root权限打开编辑即可,示例命令:sudo nano /etc/shiny-server/shiny-server.conf - 添加调度规则
根据生效范围选择对应配置方式:- 全局生效(所有应用都遵循该限制):直接在配置文件的顶级作用域添加如下配置块
simple_scheduler { max_requests_per_process 1 } - 单个应用生效:找到对应应用的
location配置块,在块内添加上述调度规则即可,示例:location /app1 { site_dir /srv/shiny-server/app1; log_dir /var/log/shiny-server/app1; simple_scheduler { max_requests_per_process 1 } }
- 全局生效(所有应用都遵循该限制):直接在配置文件的顶级作用域添加如下配置块
- 校验配置并重启服务
首先校验配置语法是否合法,避免重启失败:sudo shiny-server --test-config /etc/shiny-server/shiny-server.conf
无报错后执行重启命令生效:sudo systemctl restart shiny-server
注意事项
- 该配置会让每个用户会话单独占用一个R进程,服务器的内存、CPU开销会随并发量上涨同步升高,建议根据服务器硬件配置合理设置最大进程数,可在
simple_scheduler块中添加max_workers N配置,N为允许的最大进程数,避免进程数过多耗尽服务器资源 - 如果需要恢复默认配置,将
max_requests_per_process的参数修改为默认值100即可
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

