Skip to content

Constant disk write from s6-supervise #2741

@ioqy

Description

@ioqy

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?
    • Yes
  • Are you sure you're not using someone else's docker image?
    • Yes
  • Have you searched for similar issues (both open and closed)?
    • Yes

Describe the bug
The s6-supervise frontend process is constantly writing to disk at a rate of about 16 kilobyte/s. This amounts to roughly 1.3GB of writes per day.

I also noticed that the backups of my server grew larger in the last weeks. The backups are deduplicated which is why I noticed that the size of the backups grew larger.

I have been using NPM only for a couple of weeks so I can't say if the behaviour of s6-supervise is new. But so far I couldn't find anything else that would explain my larger backups.

Also tried a new NPM container without any configuration at all (no ports, environment and volumes in the docker-compose.yml) with the same result.

I tested it first with 2.9.21 and then upgraded to 2.9.22 to see if the new version makes a difference, but it was the same in both versions.

Edit: Going back to 2.9.20 removed these disk writes completely.

The same issue with s6-supervise but a different container is also described here: linuxserver/docker-ddclient#57

Nginx Proxy Manager Version
v2.9.22

To Reproduce
Steps to reproduce the behavior:

  1. Start the docker container
  2. Watch the DISK WRITE column of the s6-supervise frontend process with iotop --process --only --accumulate

Expected behavior
A reasonable amount of disk writes.

Screenshots
This is what iotop looks like after about 15 minutes:

image

Operating System
Operating System: Debian GNU/Linux 11 (bullseye)
Kernel: Linux 5.10.0-21-amd64
Architecture: x86-64
Docker: 23.0.1, build a5ee5b1

Additional context

Docker compose file:

version: "3"

services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:2.9.22
    container_name: nginx-proxy-manager
    ports:
      - 80:80
      - 443:443
      - 81:81
    environment:
      DISABLE_IPV6: true
    volumes:
      - /srv/docker-services/nginx-proxy-manager/data:/data
      - /srv/docker-services/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
    healthcheck:
      disable: true
    restart: unless-stopped
    networks:
      services-interconnect: {}

networks:
  services-interconnect:
    external: true

Log of the docker container:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Checking folder structure ...
Changing ownership of /data/logs to 0:0
Disabling IPV6 in hosts
❯ Disabling IPV6 in hosts: /etc/nginx/conf.d
  ❯ /etc/nginx/conf.d/default.conf
  ❯ /etc/nginx/conf.d/include/block-exploits.conf
  ❯ /etc/nginx/conf.d/include/ssl-ciphers.conf
  ❯ /etc/nginx/conf.d/include/assets.conf
  ❯ /etc/nginx/conf.d/include/proxy.conf
  ❯ /etc/nginx/conf.d/include/force-ssl.conf
  ❯ /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
  ❯ /etc/nginx/conf.d/include/ip_ranges.conf
  ❯ /etc/nginx/conf.d/include/resolvers.conf
  ❯ /etc/nginx/conf.d/production.conf
Disabling IPV6 in hosts
❯ Disabling IPV6 in hosts: /data/nginx
  ❯ /data/nginx/default_host/site.conf
  ❯ /data/nginx/proxy_host/2.conf
  ❯ /data/nginx/proxy_host/7.conf
  ❯ /data/nginx/proxy_host/13.conf
  ❯ /data/nginx/proxy_host/12.conf
  ❯ /data/nginx/proxy_host/1.conf
  ❯ /data/nginx/proxy_host/4.conf
  ❯ /data/nginx/proxy_host/8.conf
  ❯ /data/nginx/proxy_host/3.conf
  ❯ /data/nginx/stream/2.conf
❯ Secrets-init ...

-------------------------------------
 _   _ ____  __  __
| \ | |  _ \|  \/  |
|  \| | |_) | |\/| |
| |\  |  __/| |  | |
|_| \_|_|   |_|  |_|
-------------------------------------

s6-rc: info: service prepare successfully started
s6-rc: info: service nginx: starting
s6-rc: info: service frontend: starting
s6-rc: info: service backend: starting
s6-rc: info: service backend successfully started
❯ Starting backend ...
s6-rc: info: service frontend successfully started
s6-rc: info: service nginx successfully started
❯ Starting nginx ...
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[3/24/2023] [8:29:29 AM] [Global   ] › ℹ  info      No valid environment variables for database provided, using default SQLite file '/data/database.sqlite'
[3/24/2023] [8:29:29 AM] [Global   ] › ℹ  info      Generating SQLite knex configuration
[3/24/2023] [8:29:29 AM] [Global   ] › ⬤  debug     Wrote db configuration to config file: ./config/production.json
[3/24/2023] [8:29:30 AM] [Migrate  ] › ℹ  info      Current database version: none
[3/24/2023] [8:29:30 AM] [Setup    ] › ℹ  info      Creating a new JWT key pair...
[3/24/2023] [8:29:35 AM] [Setup    ] › ℹ  info      Wrote JWT key pair to config file: /app/config/production.json
[3/24/2023] [8:29:36 AM] [Setup    ] › ℹ  info      Added Certbot plugins certbot-dns-desec~=1.2.1
[3/24/2023] [8:29:36 AM] [Setup    ] › ℹ  info      Logrotate Timer initialized
[3/24/2023] [8:29:36 AM] [Setup    ] › ℹ  info      Logrotate completed.
[3/24/2023] [8:29:36 AM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
[3/24/2023] [8:29:36 AM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[3/24/2023] [8:29:37 AM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v4
[3/24/2023] [8:29:37 AM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v6
[3/24/2023] [8:29:37 AM] [SSL      ] › ℹ  info      Let's Encrypt Renewal Timer initialized
[3/24/2023] [8:29:37 AM] [SSL      ] › ℹ  info      Renewing SSL certs close to expiry...
[3/24/2023] [8:29:37 AM] [IP Ranges] › ℹ  info      IP Ranges Renewal Timer initialized
[3/24/2023] [8:29:37 AM] [Global   ] › ℹ  info      Backend PID 108 listening on port 3000 ...
[3/24/2023] [8:29:37 AM] [Nginx    ] › ℹ  info      Reloading Nginx
[3/24/2023] [8:29:37 AM] [SSL      ] › ℹ  info      Renew Complete
[3/24/2023] [8:53:26 AM] [Express  ] › ⚠  warning   invalid signature
[3/24/2023] [9:29:37 AM] [SSL      ] › ℹ  info      Renewing SSL certs close to expiry...
[3/24/2023] [9:29:37 AM] [Nginx    ] › ℹ  info      Reloading Nginx
[3/24/2023] [9:29:37 AM] [SSL      ] › ℹ  info      Renew Complete

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions