Skip to content

feat(scan): laptop-friendly resource limits op clamav-scan.service#5

Merged
MWest2020 merged 1 commit into
mainfrom
feature/clamav-scan-resource-limits
May 26, 2026
Merged

feat(scan): laptop-friendly resource limits op clamav-scan.service#5
MWest2020 merged 1 commit into
mainfrom
feature/clamav-scan-resource-limits

Conversation

@MWest2020

Copy link
Copy Markdown
Owner

Summary

Closes #3 (door @SudoThijn — bedankt voor het uitwerken inclusief metingen + reasoning per directive 🙏).

Drie [Service]-directives toegevoegd aan clamav-scan.service in common/install-timers.sh:

Nice=19
IOSchedulingClass=idle
CPUQuota=50%

Waarom

clamscan is single-threaded → 30+ minuten op ~99% van één core tijdens de daily /home-scan. Op laptops: hoge temp (70-80°C in de issue-meting), ~20W stroomverbruik, hoorbare fans. De drie limits werken samen: CPU- én I/O-prioriteit laag (interactief proces gaat altijd voor), plus harde cap op 50% van één core zodat clamscan niets volledig kan verdringen. Scan duurt in kloktijd langer; verstoort gebruiker niet meer — voor een achtergrond-scan de juiste afweging.

Test plan

  • pre-commit run --files common/install-timers.sh CHANGELOG.md — shellcheck/shfmt/gitleaks/jscpd/headers: alle groen
  • Lokale verifieer-flow gedocumenteerd in CHANGELOG.md (systemctl show clamav-scan.service -p Nice -p IOSchedulingClass -p CPUQuotaPerSecUSec)
  • Smoke-test CI op alma9/archlatest/ubuntu2404 (workflow re-genereert clamav-scan.service met de nieuwe limits; --dry-run print de unit-inhoud naar stdout)
  • Eénmalige migratie op bestaande installs:
    sudo bash common/install-timers.sh
    sudo systemctl daemon-reload

Geen wijziging aan

  • av-update.service (signature download — kort, niet CPU-heavy)
  • rkhunter-check.service (CPU-usage matig, looptijd 1-3 min op een gem. workstation)

Als die later ook resource-bewust moeten worden: aparte issue/PR — buiten scope hier om de wijziging klein en reviewable te houden.

🤖 Generated with Claude Code

Closes #3. Drie systemd [Service]-directives toegevoegd aan
clamav-scan.service in common/install-timers.sh:

  Nice=19
  IOSchedulingClass=idle
  CPUQuota=50%

Probleem (uit issue #3 van @SudoThijn): clamscan is single-threaded en
zit gedurende een 30+ minuten durende /home-scan op ~99% van één core.
Op laptops uit zich dat als hoge temperatuur (70-80°C), stroomverbruik
(~20W in de meting van de reporter) en hoorbare fans.

De drie limits werken samen:
- Nice=19 — laagste CPU-prioriteit; interactieve processen krijgen altijd
  voorrang.
- IOSchedulingClass=idle — disk I/O alleen wanneer niets anders de schijf
  nodig heeft.
- CPUQuota=50% — harde cap op 50% van één core; voorkomt volledige
  CPU-verzadiging.

Trade-off: scan duurt in kloktijd langer maar verstoort de gebruiker niet
meer. Voor een achtergrond-scan de juiste afweging.

Migratie voor bestaande installs (in CHANGELOG.md): één keer
'sudo bash common/install-timers.sh && sudo systemctl daemon-reload'.
De service is een oneshot en draait om 02:00 — geen restart nodig.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MWest2020 MWest2020 merged commit ecd0554 into main May 26, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Resource limits toepassen op clamav-scan.service om CPU-verzadiging tijdens scans te voorkomen

1 participant