Skip to content

100% CPU usage on a core #1247

Open
Open
@4-FLOSS-Free-Libre-Open-Source-Software

Description

Support guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

diun serve stayed constant high CPU usage until container stopped. I tried a workaround, limit cpu by compose and setting process niceness to idle for less impact.

Expected behaviour

less cpu time

Actual behaviour

diun serve

Steps to reproduce

After a day of running with this config, sometime it happened.

Diun version

4.28.0

Docker info

Client: Docker Engine - Community
 Version:    27.2.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.16.2
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.29.2
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 130
  Running: 115
  Paused: 0
  Stopped: 15
 Images: 267
 Server Version: 27.2.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 nvidia runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
 runc version: v1.1.14-0-g2c9f560
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.10.7-microsoft-Stratosphere-xanmod1
 Operating System: Ubuntu 22.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 32
 Total Memory: 125.8GiB
 Name: wsl2
 ID: 5b99cc90-71aa-11ef-b9f5-5ebbf69eeefa
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: true

Docker Compose config

diun:
    image: crazymax/diun
    container_name: image-update-notifier-diun
    command: serve
    volumes:
      - "Docker-Image-Update-Notifier-diun:/data"
      - "${DOCKER_SOCKET_PATH:-/var/run/docker.sock}:/var/run/docker.sock"
      - ./reniced/Dockerfile:/reniced/Dockerfile:ro
    environment
      - "LOG_LEVEL=info"
      - "LOG_JSON=false"
      - "DIUN_WATCH_FIRSTCHECKNOTIF=false"
      - "DIUN_WATCH_WORKERS=1"
      - DIUN_WATCH_SCHEDULE="0 */6 * * *"
      - "DIUN_WATCH_JITTER=3h"
      #  WRN Cannot get remote manifest error=
      - "DIUN_WATCH_COMPAREDIGEST=false" # HEAD requests
      - "DIUN_REGOPTS_DOCKER_NAME=docker.io"
      - "DIUN_REGOPTS_DOCKER_SELECTOR=image"
      - "DIUN_REGOPTS_DOCKER_TIMEOUT=120s"
      - "DIUN_REGOPTS_GHCR_NAME=ghcr.io"
      - "DIUN_REGOPTS_GHCR_SELECTOR=image"
      - "DIUN_REGOPTS_GHCR_TIMEOUT=120s"
      - "DIUN_PROVIDERS_DOCKER=true"
      - "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true"
      - "DIUN_PROVIDERS_DOCKER_WATCHSTOPPED=true"
      - "DIUN_PROVIDERS_DOCKERFILE=true"
      - "DIUN_PROVIDERS_DOCKERFILE_PATTERNS=**/Dockerfile*"
    restart: unless-stopped
    cpus: 0.01

Logs

INF Image update found image=docker.io/ubuntu/bind9:latest provider=docker
INF Image update found image=docker.io/willfarrell/autoheal:latest provider=docker

Additional info

CMD | serve
ENTRYPOINT | diun
ENV | DIUN_DB_PATH                     /data/diun.db                                        DIUN_PROVIDERS_DOCKER                     true                                        DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT                     true                                        DIUN_PROVIDERS_DOCKER_WATCHSTOPPED                     true                                        DIUN_PROVIDERS_DOCKERFILE                     true                                        DIUN_PROVIDERS_DOCKERFILE_PATTERNS                     **/Dockerfile*                                        DIUN_REGOPTS_DOCKER_NAME                     docker.io                                        DIUN_REGOPTS_DOCKER_SELECTOR                     image                                        DIUN_REGOPTS_DOCKER_TIMEOUT                     120s                                        DIUN_REGOPTS_GHCR_NAME                     ghcr.io                                        DIUN_REGOPTS_GHCR_SELECTOR                     image                                        DIUN_REGOPTS_GHCR_TIMEOUT                     120s                                        DIUN_WATCH_COMPAREDIGEST                     false                                        DIUN_WATCH_FIRSTCHECKNOTIF                     false                                        DIUN_WATCH_JITTER                     3h                                        DIUN_WATCH_SCHEDULE                     "0 */6 * * *"                                        DIUN_WATCH_WORKERS                     1                                        LOG_JSON                     false                                        LOG_LEVEL                     info                                        PATH                     /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin                                        PROFILER_PATH                     /profiler | DIUN_DB_PATH | /data/diun.db | DIUN_PROVIDERS_DOCKER | true | DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT | true | DIUN_PROVIDERS_DOCKER_WATCHSTOPPED | true | DIUN_PROVIDERS_DOCKERFILE | true | DIUN_PROVIDERS_DOCKERFILE_PATTERNS | **/Dockerfile* | DIUN_REGOPTS_DOCKER_NAME | docker.io | DIUN_REGOPTS_DOCKER_SELECTOR | image | DIUN_REGOPTS_DOCKER_TIMEOUT | 120s | DIUN_REGOPTS_GHCR_NAME | ghcr.io | DIUN_REGOPTS_GHCR_SELECTOR | image | DIUN_REGOPTS_GHCR_TIMEOUT | 120s | DIUN_WATCH_COMPAREDIGEST | false | DIUN_WATCH_FIRSTCHECKNOTIF | false | DIUN_WATCH_JITTER | 3h | DIUN_WATCH_SCHEDULE | "0 */6 * * *" | DIUN_WATCH_WORKERS | 1 | LOG_JSON | false | LOG_LEVEL | info | PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | PROFILER_PATH | /profiler
DIUN_DB_PATH | /data/diun.db
DIUN_PROVIDERS_DOCKER | true
DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT | true
DIUN_PROVIDERS_DOCKER_WATCHSTOPPED | true
DIUN_PROVIDERS_DOCKERFILE | true
DIUN_PROVIDERS_DOCKERFILE_PATTERNS | **/Dockerfile*
DIUN_REGOPTS_DOCKER_NAME | docker.io
DIUN_REGOPTS_DOCKER_SELECTOR | image
DIUN_REGOPTS_DOCKER_TIMEOUT | 120s
DIUN_REGOPTS_GHCR_NAME | ghcr.io
DIUN_REGOPTS_GHCR_SELECTOR | image
DIUN_REGOPTS_GHCR_TIMEOUT | 120s
DIUN_WATCH_COMPAREDIGEST | false
DIUN_WATCH_FIRSTCHECKNOTIF | false
DIUN_WATCH_JITTER | 3h
DIUN_WATCH_SCHEDULE | "0 */6 * * *"
DIUN_WATCH_WORKERS | 1
LOG_JSON | false
LOG_LEVEL | info
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PROFILER_PATH | /profiler

Image 	[crazymax/diun@sha256:ecac071c00b8af8887c851a2fadf16054dcae0ec4876de19cd6acc5133fcae2f](https://portainer.12.dedyn.io/#!/92/docker/images/sha256%3Aecac071c00b8af8887c851a2fadf16054dcae0ec4876de19cd6acc5133fcae2f)
CMD 	serve
ENTRYPOINT 	diun
ENV 	
DIUN_DB_PATH 	/data/diun.db
DIUN_PROVIDERS_DOCKER 	true
DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT 	true
DIUN_PROVIDERS_DOCKER_WATCHSTOPPED 	true
DIUN_PROVIDERS_DOCKERFILE 	true
DIUN_PROVIDERS_DOCKERFILE_PATTERNS 	**/Dockerfile*
DIUN_REGOPTS_DOCKER_NAME 	docker.io
DIUN_REGOPTS_DOCKER_SELECTOR 	image
DIUN_REGOPTS_DOCKER_TIMEOUT 	120s
DIUN_REGOPTS_GHCR_NAME 	ghcr.io
DIUN_REGOPTS_GHCR_SELECTOR 	image
DIUN_REGOPTS_GHCR_TIMEOUT 	120s
DIUN_WATCH_COMPAREDIGEST 	false
DIUN_WATCH_FIRSTCHECKNOTIF 	false
DIUN_WATCH_JITTER 	3h
DIUN_WATCH_SCHEDULE 	"0 */6 * * *"
DIUN_WATCH_WORKERS 	1
LOG_JSON 	false
LOG_LEVEL 	info
PATH 	/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PROFILER_PATH 	/profiler

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions