I have one shiny app that I need to scale up. It runs a 2 minute simulation, and the website becomes inaccessible to other users while it runs the simulation. I was hoping shinyproxy could remedy this.
The issue is that I want this app to operate as a website that anyone can visit. As such, my authentication is set to none. Thus, only one container is opening each time someone visits the website since shinyproxy thinks there is only one user (I think), which makes the app run very slowly. For example, if two users try to run a simulation at the same time, it takes 12 minutes for both.
My question is: how can I scale this up within shinyproxy? It seems like container-memory-request
, container-memory-limit
and container-cpu-limit
might be the answer, but I’ve modified my yml and it is still takes 12 minutes for both users.
Am I using this incorrectly? Or, is this something that can’t be done in shinyproxy (and if so, should I use something else like docker swarm instead)?
This is my yml:
title: Dynamic Fit
port: 8080
landing-page: /app/updates
authentication: none
container-backend: docker
docker:
url: http://localhost:2375
container-memory-request: 200M
container-memory-limit: 500M
container-cpu-limit: .1
hide-navbar: true
specs:
- id: updates
display-name: Dynamic Fit
container-cmd: ["R", "-e", "rmarkdown::run('/srv/shiny-server/app/Updates.Rmd', shiny_args = list(port = 3838, host = '0.0.0.0'))"]
container-image: myappb
port: 3838
logging:
file:
shinyproxy.log