CPU usage increasing 1 core@100% per day

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 32.0.14
  • Operating system and version (e.g., Ubuntu 24.04):
    • AlmaLinux 9.8
  • Web server and version (e.g, Apache 2.4.25):
    • Apache 2.4.68 (codeit)
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • Apache 2.4.68 (codeit)
  • PHP version (e.g, 8.3):
    • 8.4.25
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • 2026-08-31 19:00 (EST)
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Manual with a dedicated DB server
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

3 days ago, the CPU usage started increasing all of a sudden. At first, 1 CPU core was running at 100% for 24 hours. 2 days ago, CPU usage increased by another full CPU core, same thing Yesterday, until CPU usage on my 4 cores server came to 100%. Then I got alerted by Zabbix that my Nextcloud server was running at 100% CPU.

Using top, I noticed that 4 php workers were all running at 100%. Nothing in php logs or error logs, no call in httpd’s access_log, and no Nextcloud logs.

The time at which the CPU increased seem to be when a cron job has run.

See at the bottom of the post the CPU consumption graph from Zabbix.

The DB server CPU usage did not move at all, so no database calls were being generated by the bug.

Last reboot before the bug was 3 days prior to first CPU increase, on August 28, so it ran fine before that.

Steps to replicate it (hint: details matter!):

  1. The server runs fine

  2. CPU usage increases daily, one core going up to 100% at a time, until no CPU time is available.

Log entries

Nextcloud

These are the only 2 log entries I have at the time the latest CPU began its spike. Seems like a cron job just ran right when the last CPU core increased to 100%

Info
spreed
Deleted 2 stale sessions

3 sept. 2026, 17:01:04

Info
dav
Removed outdated scheduling objects

3 sept. 2026, 17:01:04

Web Browser

Not related to Web browser

Web server / Reverse Proxy

Nothing in the logs at time of event.

Configuration

Nextcloud

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "REMOVED"
        ],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "overwritehost": "REMOVED",
        "overwriteprotocol": "https",
        "overwrite.cli.url": "https:\/\/REMOVED",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.14.1",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "3306",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpauth": true,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "default_phone_region": "CA",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "maintenance": false,
        "maintenance_window_start": 21,
        "theme": "",
        "has_internet_connection": true,
        "loglevel": 0,
        "app_install_overwrite": [],
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory"
    }
}

Apps

The output of occ app:list (if possible).

Enabled:
  - activity: 5.0.0
  - admin_audit: 1.22.0
  - app_api: 32.0.0
  - appointments: 2.7.4
  - bruteforcesettings: 5.0.0
  - calendar: 6.5.4
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contacts: 8.3.18
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.3
  - deck: 1.16.7
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_antivirus: 6.4.0
  - files_downloadlimit: 5.0.0
  - files_pdfviewer: 5.0.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.1
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0
  - forms: 5.3.5
  - logreader: 5.0.0
  - lookup_server_connector: 1.20.0
  - mail: 5.11.2
  - nextcloud_announcements: 4.0.0
  - notifications: 5.0.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0
  - photos: 5.0.0
  - privacy: 4.0.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0
  - related_resources: 3.0.0
  - richdocuments: 9.2.1
  - richdocumentscode: 26.4.104
  - serverinfo: 4.0.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - spreed: 22.0.17
  - support: 4.0.0
  - survey_client: 4.0.0
  - systemtags: 1.22.0
  - text: 6.0.2
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - twofactor_totp: 14.0.0
  - updatenotification: 1.22.0
  - user_ldap: 1.23.0
  - user_status: 1.12.0
  - viewer: 5.0.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - encryption: 2.20.0
  - files_external: 1.24.1
  - notify_push: 1.4.0 (installed 1.4.0)
  - suspicious_login: 10.0.0
  - twofactor_nextcloud_notification: 6.0.0

CPU usage graph of the past 3 days:

Thank you guys for helping! :slight_smile:

Can you check the table in the database with the cronjobs? It normally holds a list of different cronjobs, when they ran for the last time, and how long their execution took.

Did you run any updates shortly before the problems appeared (Nextcloud, Nextcloud-Apps)?

I just got a confirmation that it is indeed the cron job spiking the CPU. It just restarted the same pattern tonight, at the exact same time: 5PM (17:00)

Seems like an antivirus file scan that never ends…

Troubleshooting with Claude.ai, it ended up being a lingering LDAP account that had not been properly deleted from all tables. The cron job tried to scan its home directory, but it no longer existed.

This LDAP account had been deleted / unlinked a few months back, so I don’t know what brought it back from the dead, or made the cron job retry the scan indefinitely (it should just have failed after x retries…).

Now where is the bug? In the scanner? In the cron job? Or in the LDAP module (which I have deactivated because it had no real value) that did not do the complete job of deleting all the linked table entries, I guess I’ll never know.

But definitely, the LDAP module needs a whole lot of work, especially when it comes to account fusion between a local and an LDAP account, but also for managing admin rights through nested groups, and cleaning up users remnants in the tables.

Here are all the entries I’ve had to clean up. Now I’ll wait until Tomorrow before saying it’s a victory.

Interesting findings, thanks for sharing! If it works, may I ask you to open an issue at Issues · nextcloud/server · GitHub with your findings so the devs can take a look?