GNU/Linux >> Linux Esercitazione >  >> Linux

Come ridurre l'utilizzo della memoria ClamAV?

ClamAV contiene le stringhe di ricerca utilizzando gli algoritmi di stringhe classiche (Boyer Moore) e di espressioni regolari (Aho Corasick). Essendo algoritmi degli anni '70, sono estremamente efficienti in termini di memoria.

Il problema è l'enorme numero di firme dei virus. Questo fa sì che le strutture dati degli algoritmi diventino piuttosto grandi.

Non è possibile inviare tali strutture di dati allo scambio, poiché non vi sono parti delle strutture di dati degli algoritmi a cui si accede meno spesso di altre parti. Se costringi le pagine di esse a scambiare il disco, allora verranno referenziate pochi istanti dopo e verranno semplicemente scambiate di nuovo. ".)

Le strutture dati sono necessarie se esegui la scansione dalla riga di comando o da un demone.

Non puoi utilizzare solo una parte delle firme dei virus, poiché non puoi scegliere quali virus ti verranno inviati e quindi non puoi sapere quali firme ti serviranno.

Ecco la memoria utilizzata su una macchina a 32 bit che esegue Debian Wheezy ed è chiusa.

# ps_mem.py 
 Private  +   Shared  =  RAM used   Program
281.7 MiB + 422.5 KiB = 282.1 MiB   clamd

Modifica:vedo che qualcuno suggerisce di impostare la dimensione del set residente. Se ciò riesce, avere una dimensione del set residente inferiore alla dimensione del set di lavoro porterà al thrashing del processo da e verso lo swap. Ciò ridurrà sostanzialmente le prestazioni dell'intero sistema. In ogni caso la pagina di manuale di Linux per setrlimit(RLIMIT_RSS, ...) dice che l'impostazione della dimensione del resident set non è più supportata e non ha mai avuto alcun effetto sui processi che hanno scelto di non chiamare madvise(MADV_WILLNEED, ...).


Questa risposta non è verificata e potrebbe non funzionare. Inoltre non spiega come ridurre l'utilizzo della memoria, ma come limitare l'utilizzo della memoria, che è un po' diverso.

Puoi modificare lo script init di ClamAV (int /etc/init.d/ per aggiungere il comando ulimit -m amountofram .
Limiterà la possibilità di ClamAV e probabilmente cambierai, il che probabilmente rallenterà l'intero sistema.


Ho riscontrato un problema simile eseguendo clad su una piccola scatola NAS domestica con solo 512 MB. Da un sondaggio di domande in rete sembra che non ci sia alcun modo per ridurre l'utilizzo della memoria. Il database delle cose brutte continua a diventare sempre più grande.

È possibile configurare clamav per l'esecuzione in modalità non demone installando "clamav" anziché "clamav-daemon". Ciò potrebbe consentire di avere più memoria per la maggior parte del tempo. Quando esegui la scansione dei caricamenti, avrai sempre bisogno di una grossa fetta di RAM.


Linux
  1. Utilizzo della memoria di Linux

  2. Come visualizzare i processi principali ordinati in base all'utilizzo effettivo della memoria?

  3. Come trovare l'utilizzo della memoria dell'utente in Linux

  4. Come viene riportato l'utilizzo della memoria in Linux?

  5. Come limitare l'utilizzo della memoria per applicazione in Linux?

Come trovare i 10 principali processi in esecuzione in base all'utilizzo di memoria e CPU

Come trovare i migliori processi in esecuzione in base all'utilizzo della memoria

Come interpretare l'utilizzo della memoria top/htop?

Come ordinare il comando superiore in base all'utilizzo della memoria

Come profilare l'utilizzo della memoria?

Utilizzo della memoria dei comandi TOP