繁体   English   中英

遏制shinyproxy非常慢

[英]containarized shinyproxy very slow

我使用堆栈部署了一个shinyapps:R,docker和shinyproxy,到目前为止,这些工具对用户来说非常棒。 但是我在负载平衡方面遇到了一些困难,因此当我在解决方案上运行更新时,我可以扩展并停止打扰用户。

根据https://www.shinyproxy.io/shinyproxy-containers/的建议,我使用了https://github.com/openanalytics/shinyproxy-config-examples/tree/master/02-containerized-docker - 发动机集装箱码头发动机。 当我运行java -jar shinyproxy-2.0.3.jar而不是容器化时,我的解决方案运行得很好。 但是现在当我将它集装箱化时,它变得非常非常缓慢,事实上,即使内部网络处于活动状态,当我尝试打开容器时,容器会崩溃。

目前我只是试图测试容器化shinyproxy是否可以工作而不会给我带来问题但是失败了。

我在服务器上的Nginx配置

server {

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name qnumsolutions.com www.qnumsolutions.com;

        location / { 
       proxy_pass          http://127.0.0.1:8080/;

       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 600s;

       proxy_redirect    off;
       proxy_set_header  Host             $http_host;
       proxy_set_header  X-Real-IP        $remote_addr;
       proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
       proxy_set_header  X-Forwarded-Protocol $scheme;
        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/qnumsolutions.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/qnumsolutions.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Shinyproxy application.yml

proxy:
  title: The Operational Intelligence Solution
  logo-url: http://qnum.co.za/wp-content/uploads/2018/03/OI-Solution-Icon.png
  landing-page: /
  heartbeat-rate: 100000
  heartbeat-timeout: 600000
  port: 8080
  authentication: simple 
  container-log-path: ./container-logs
  admin-groups: admin
  usage-stats-url: http://159.65.95.235:8086/write?db=shinyproxy_usagestats
  # Example: 'simple' authentication configuration
  users:
  - name: info@qnum.co.za
    password: prupr1.
    groups: admin
  docker:
    url: http://localhost:2375
    port-range-start: 20000
  specs:
  - id: OISolution1
    description: Application is designed to help organisations use advanced analytics to manage product visibility and variance
    container-cmd: ["R", "-e shiny::runApp('/root/hostedoi')"]
    container-image: oisolution
    container-volumes: ["/home/shiny/database:/mnt/persistent1"]
    access-groups: admin
  - id: OISolution2
    description: Application is designed to help organisations use advanced analytics to manage product visibility and variance
    container-cmd: ["R", "-e shiny::runApp('/root/hostedoi1')"]
    container-image: oisolution1
    container-volumes: ["/home/shiny/database:/mnt/persistent1"]
    access-groups: admin

logging:
  file:
    shinyproxy.log

Dockerfile

FROM openjdk:8-jre

RUN mkdir -p /opt/shinyproxy/
RUN wget https://www.shinyproxy.io/downloads/shinyproxy-2.0.3.jar -O /opt/shinyproxy/shinyproxy.jar
COPY application.yml /opt/shinyproxy/application.yml

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]

最后sudo docker ps产量

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
bc396c8bd26a        ois-shinyproxy      "java -jar /opt/shin…"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   clever_beaver

我咨询的其他链接: https//fly.io/articles/load-balancing-a-fleet-of-docker-containers-using-fly/

非常感谢您的协助。

您的usage-stats-url似乎存在问题。 也许防火墙或某些东西阻止ShinyProxy到达这个目的地? 我可以重现这种缓慢的行为,但当我评论这一行时它就消失了。

除此之外,你的application.yml有一些关于Docker的错误。 我改变了一点,并设法在我的本地机器上使用这种配置运行它( nginx.conf和Dockerfile只是略微改变以适应我对docker docker-compose需求):

proxy:
  title: The Operational Intelligence Solution
  logo-url: http://qnum.co.za/wp-content/uploads/2018/03/OI-Solution-Icon.png
  landing-page: /
  heartbeat-rate: 100000
  heartbeat-timeout: 600000
  port: 8080
  authentication: simple 
  container-log-path: ./container-logs
  admin-groups: admin
  #usage-stats-url: http://159.65.95.235:8086/write?db=shinyproxy_usagestats
  # Example: 'simple' authentication configuration
  users:
  - name: info@qnum.co.za
    password: prupre35A21.
    groups: admin
  docker:
    internal-networking: true
  specs:
  - id: 01_hello
    display-name: Hello Application
    description: Application which demonstrates the basics of a Shiny app
    container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    container-image: openanalytics/shinyproxy-demo
    container-volumes: ["/tmp:/mnt/persistent1"]
    container-network: shinyproxy_slow_default
    access-groups: admin
  - id: 06_tabsets
    container-cmd: ["R", "-e", "shinyproxy::run_06_tabsets()"]
    container-image: openanalytics/shinyproxy-demo
    container-volumes: ["/tmp:/mnt/persistent1"]
    container-network: shinyproxy_slow_default
    access-groups: admin

logging:
  file:
    shinyproxy.log

我使用docker-compose运行所有内容,请参阅:

version: "3.1"

services:
  web:
    image: nginx:alpine
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf


  shinyproxy:
    image: sp_test
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./application.yml:/opt/shinyproxy/application.yml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM