Transfert speed on Docker

Hello,

I used the Docker official latest image and I have no more than 3 or 4 MB/s which is really slow compared to what my broadband connection is capable of.

Don’t understand how, with a default configuration from the official Docker image, can I have a download speed so slow.

It’s a home server that’s on the same internal network as the clients that I tested with.

CPU: Intel Core i5-4570S @2.90 GHz
RAM: 4 GB DDR3 @1333 MHz
Storage: 1 x 64 GB SSD Kingston, 2 x 4TB HDD @5400 rpm Western Digital Green
Broadband connection: FTTLA (coaxial) 1Gbps for download & 60 Mbps for upload
OS: Ubuntu 18.04.1 LTS
Docker: 18.09.1
Docker-Compose: 1.23.2, build 1110ad0

My docker-compose.yml:

version: '3.5'

services:

  proxy:
    image: jwilder/nginx-proxy:alpine
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
    container_name: nextcloud-proxy
    networks:
            nextcloud:
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./proxy/conf.d:/etc/nginx/conf.d:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - ./proxy/certs:/etc/nginx/certs:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: unless-stopped

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    depends_on:
      - proxy
    networks:
            nextcloud:
    volumes:
      - ./proxy/certs:/etc/nginx/certs:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped

  db:
    image: mariadb
    container_name: nextcloud-mariadb
    networks:
            nextcloud:
    volumes:
      - db:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=*********
      - MYSQL_PASSWORD=*********
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=ncuser
    restart: unless-stopped

  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    networks:
            nextcloud:
    depends_on:
      - letsencrypt
      - proxy
      - db
    volumes:
      - nextcloud-data:/var/www/html
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=cloud.mydomain.tld
      - LETSENCRYPT_HOST=cloud.mydomain.tld
      - LETSENCRYPT_EMAIL=administrator@mydomain.tld
    restart: unless-stopped

volumes:
  nextcloud-data:
          external: true
  db:

networks:
  nextcloud:
          name: my-network

server and client hardware?
what kind of files to you sync? one large file, many small?

Server: see the first post.

Clients:
MacBook Pro 13 2017 (Core i7, 16 GB, SSD 512 GB), tried Safari 12 and Chrome 71.0.3578.98 on macOS Mojave 10.14.2 (18C54).

Custom desktop Intel Core i7 2600K @ 3.6 GHz, 16 GB DDR3, SSD 256 Samsung 840 SATA 3, tried Firefox 64.0.2 and Chrome 71.0.3578.98 on Windows 10 latest update.

Tried one large file of 1 GB (Ubuntu Desktop ISO). Top speed was between 3 and 4 MB/s with Safari 12 while the server and the client are on the same network.

I just tested to upload a file and download it again from a folder that’s on the docker local volume, not one using samba and the result is the same so it’s clearly not samba that causes this slow download speed issue.

However, I wonder if the fact that I access Nextcloud through the WAN and not the LAN can slow down the download/upload process ? Since it’s the same IP that upload AND download the file ?

I tested this morning at work and I’ve got 6,5 MB/s which is approximately 60 Mbps, it’s maybe a clue.