Skip to content

Increased CPU load when idle #779

@Millisman

Description

@Millisman

Describe the bug

The program creates unnecessary load on the processor during idle time, as well as during synchronization with the client.
In addition, traffic is created on the lo interface (more than 1 TB per day)

Steps to reproduce

  1. Download OpenCloud 2.2.0 latest binary version.
  2. Repeat my instance settings

Expected behavior

The program must use resources when actually running.

Actual behavior

The program loads the processor evenly across all cores when doing nothing. The load level is within 15-30% on each core. In addition, it creates lo on the internal interface at a speed of 30MB/s

Setup

As an SSL terminator I tried nginx or mox programs that work on ports 80 and 443. They perform SSL termination and forward traffic to port 127.0.0.1:9200

Details

ENV:

PROXY_HTTP_ADDR=127.0.0.1:9200
PROXY_TLS=false
OC_URL=https://c.b.a.co
OC_DOMAIN=c.b.a.co

opencloud.yaml:

token_manager:
  jwt_secret: *secret*
machine_auth_api_key: *secret*
system_user_api_key: *secret*
transfer_secret: *secret*
system_user_id: *secret*
admin_user_id: *secret*
graph:
  application:
    id: *secret*
  events:
    tls_insecure: false
  spaces:
    insecure: false
  identity:
    ldap:
      bind_password: *secret*
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
idp:
  ldap:
    bind_password: *secret*
idm:
  service_user_passwords:
    admin_password: *secret*
    idm_password: *secret*
    reva_password: *secret*
    idp_password: *secret*
collaboration:
  wopi:
    secret: *secret*
  app:
    insecure: false
proxy:
  oidc:
    insecure: false
  insecure_backends: false
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
frontend:
  app_handler:
    insecure: false
  archiver:
    insecure: false
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
auth_basic:
  auth_providers:
    ldap:
      bind_password: *secret*
auth_bearer:
  auth_providers:
    oidc:
      insecure: false
users:
  drivers:
    ldap:
      bind_password: *secret*
groups:
  drivers:
    ldap:
      bind_password: *secret*
ocdav:
  insecure: false
ocm:
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
thumbnails:
  thumbnail:
    transfer_secret: *secret*
    webdav_allow_insecure: false
    cs3_allow_insecure: false
search:
  events:
    tls_insecure: false
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
audit:
  events:
    tls_insecure: false
settings:
  service_account_ids:
  - *secret*
sharing:
  events:
    tls_insecure: false
storage_users:
  events:
    tls_insecure: false
  mount_id: acd1e009-a3fd-495d-bb2b-1d310f515bb6
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
notifications:
  notifications:
    events:
      tls_insecure: false
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
nats:
  nats:
    tls_skip_verify_client_cert: false
gateway:
  storage_registry:
    storage_users_mount_id: acd1e009-a3fd-495d-bb2b-1d310f515bb6
userlog:
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
auth_service:
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
clientlog:
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*
activitylog:
  service_account:
    service_account_id: *secret*
    service_account_secret: *secret*


cat /usr/lib/systemd/system/opencloud.service 
[Unit]
Description=Opencloud server daemon
After=syslog.target network.target

[Service]
User=oceu
Group=oceu
Type=simple
Environment=OC_BASE_DATA_PATH=/var/lib/opencloud
Environment=OC_CONFIG_DIR=/etc/opencloud
EnvironmentFile=/etc/opencloud/opencloud.env
ExecStart=/usr/bin/opencloud-server server
WorkingDirectory=/var/lib/opencloud

# Sandboxing
ProtectProc=invisible
#ProtectSystem=strict
ReadWritePaths=/var/lib/opencloud
ProtectHome=yes
PrivateTmp=yes
PrivateDevices=yes
PrivateIPC=yes
PrivateUsers=yes
ProtectHostname=yes
ProtectClock=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
RestrictNamespaces=yes
LockPersonality=yes
RestrictSUIDSGID=yes
RemoveIPC=yes
NoNewPrivileges=yes
SystemCallArchitectures=native

TimeoutStopSec=120
Restart=on-failure

[Install]
WantedBy=multi-user.target

Additional context

The system log is filled with messages like this:

May 05 11:59:46 linux opencloud-server[8050]: nats: slow consumer, messages dropped on connection [66] for subscription on "main-queue"
May 05 11:59:46 linux opencloud-server[8050]: nats: slow consumer, messages dropped on connection [66] for subscription on "main-queue"
May 05 11:59:45 linux opencloud-server[8050]: nats: slow consumer, messages dropped on connection [66] for subscription on "main-queue"

Operating system - Archlinux latest version, which corresponds to working on "bare hardware" on VM

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions