From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dVxVH5J6nz2ywD for ; Tue, 16 Dec 2025 12:45:27 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dVxVD1Sw6z2xQW for ; Tue, 16 Dec 2025 12:45:24 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4dVxVB52Hgz1Vc; Tue, 16 Dec 2025 12:45:22 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1765889122; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b9PcpvcCb/XKSGtI30o7DJcJBzn8SUMzY5FNZaSZlvs=; b=5l7M6hJN9zdenmuMLBXY9RnVZji74MFTMjydOS70w18f7kWdkjdmEGbJdqpuDxjrSOkjIW nS088IIBogRjgpBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1765889122; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b9PcpvcCb/XKSGtI30o7DJcJBzn8SUMzY5FNZaSZlvs=; b=odKBPD3USH62k9MHNcL2Ef0zEhokDzcdieVQircMWNekJkGJvi9z0sT0e71nPVhDv3PAcK O4iOO7AVeSHIjRbsJXaXDvrRgjO4bObXQ3vhkB/Wv2qX45dVUf6uafmzTYXhVeACzwMACr rpHADvhYh4x9/gPXLl9viEaOqbpVJe4QDiFW8eb7V350aDLIKCz8Z5aWX7PsXGsFNjkYbn 6B+qhTcObUKAKhTw+JLv7GPYaeiO3tSUVSf9TGZ76hGCvZidLFh2iZhfxg4v5cQ2TP/uYY vdUVwOvU/GeXSNYZEOslD6GN3Eo+iAbdyJ35nvzsuFUlM2+/gVGEsb11dttP4w== Message-ID: Date: Tue, 16 Dec 2025 13:45:19 +0100 Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Subject: Re: Large Suricata cache directory. To: Michael Tremer References: <8ac70e7aa3d72cf2de5cda09a52f1cf6@ipfire.org> <8BFE2D8F-E49A-4823-8795-0A6B54D6A1B5@ipfire.org> Content-Language: en-GB Cc: "IPFire: Development-List" From: Adolf Belka In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Michael, On 16/12/2025 11:30, Michael Tremer wrote: > Hello Adam, > >> On 15 Dec 2025, at 19:29, Adam Gibbons wrote: >> >> Hi Michael, Adolf, >> >> Yes, Adolf has patched the second issue. I’ve tested this and backups dropped from 826 MB to around 10 MB. Thank you, Adolf, for that. > > This sounds like a very reasonable size for a backup file. > >> If the upstream Suricata fix lands soon, we may not need to do anything further. Regarding the proposed `find` command, my only concern is partial cache removal. When I removed the entire cache, Suricata regenerated it cleanly on startup. I’m not sure how it behaves when only some of the cache is missing, as I’ve only tested removing all of it (`rm -rf /var/cache/suricata/sgh/*`). Perhaps it would be cleaner and potentially safer to just purge the cache entirely? > > I suppose that Suricata will just re-generate anything that is missing from the cache. It would just take a couple of seconds at startup. > > You can simply test this be removing half the files and restart Suricata. If it fails to come up, I would consider this a bug that we should be reporting upstream. However, that would surprise me if it was implemented as such. > > -Michael > >> Thanks, >> Adam >> >> >> On 15 December 2025 16:54:51 GMT, Michael Tremer wrote: >> Hello Adam, >> >> Thank you for raising this here. >> >> We seem to have two different issues as far as I can see: >> >> 1) The directory just keeps growing >> >> 2) It is being backed up and completely blows up the size of the backup >> >> No. 2 has been fixed by Adolf. It is however quite interesting that we already have something in /var/cache in the backup. The intention was to have a valid set of rules available as soon as a backup is being restored, but I think there is very little value in this. The rules are probably long expires and will be re-downloaded again. >> >> We also have a large number of other (also large in disk size) lists around that we are not backing up, so I would propose that we remove /var/cache/suricata from the backup entirely. Until we have made a decision on this, I have merged Adolf’s patch. >> >> Regarding No. 1, this is indeed a problem that Suricata does not clean this up itself. We could add a simple command that looks a bit like this: >> >> find /var/cache/suricata/ -type f -atime +7 -delete This doesn't remove anything. find /var/cache/suricata/sgh/ -type f gives a list of all files in the suricata directory and the sgh one. However find /var/cache/suricata/sgh/ -type f -atime +7 gives an empty result. Maybe that is because I have restarted suricata by changing some rules selected entries. find /var/cache/suricata/sgh/ -type f -mtime +7 -delete took the sgh size down from 660MB to 127MB and suricata still worked. I think we should do the trimming of files in the sgh directory only. If we do it for the suricata directory then it will also remove the tarballs for rulesets that might be selected as providers and with the rulesets getting an update but the rules not enabled and then the last updated date is replaced by N/A and if the provider is then enabled suricata will go through its stuff and say it has completed but if you then go and look to customise the rules you will find no entries for that selected provider because the tarball has been removed. So for selected but disabled providers you would have to go to the provider page and force an update to force the tarball to be re-downloaded and then you can enable it and the rules will be available to select in the customise page. Regards, Adolf. >> >> This would delete all of the cached files that have not been accessed in the last seven days. >> >> On my system, the entire directory is 1.4 GiB in size and the command would remove 500 MiB. >> >> Happy to read your thoughts. >> >> -Michael >> >> On 12 Dec 2025, at 16:49, Adam Gibbons wrote: >> >> Hi all, >> >> As discussed on the forum >> https://community.ipfire.org/t/re-large-backupfile/15346 >> it appears that Suricata’s new cache optimisation feature is creating a large number of files under >> `/var/cache/suricata/sgh/`, which in some cases causes backup files to grow to 800+ MB. >> >> @Adolf has confirmed that this directory probably should not be included in backups, as it is automatically regenerated, and I believe he mentioned he is working on a patch to exclude it from the backup. >> >> However, in the meantime, this directory continues to grow over time. The upstream Suricata patches to automatically clean or maintain the cache have not yet been merged, although they may be soon: >> >> https://github.com/OISF/suricata/pull/13850 >> https://github.com/OISF/suricata/pull/14400 >> >> To me this represents a disk-space exhaustion risk on systems with limited storage. Perhaps we should consider disabling Suricata’s new cache optimisation feature until automatic cache cleanup/maintenance is available upstream and included. >> >> Thanks, >> Adam >> >> >> > >