isc-dhcp leases file never cleaned
As MadHatter mentioned in a comment, the leases file is periodically re-created to avoid this problem. While the period isn't mentioned in the documentation, discussions on the dhcp-users mailinglist indicates that it should be done once an hour, and I've checked the source code and found that this is correct.
Unfortunately this isn't a configurable option. In order to change it, you'd need to compile the dhcp server from source. In the file server/db.c
you'd need to change the line
#define LEASE_REWRITE_PERIOD 3600
to the number of seconds you'd prefer.
Jon Skarpeteig
Updated on September 18, 2022Comments
-
Jon Skarpeteig almost 2 years
When running isc-dhcp the leases file seems to grow indefinitely (several hundred MB). If I restart the isc-dhcp service, the file shrinks to 1.5MB.
How can I have isc-dhcp flush expired records periodically without restarting the full service?
-
MadHatter almost 10 yearsThe documentation suggests
dhcpd
does this itself automatically, but at a frequency of its choosing. How long are your leases? Is there a good business reason not to just bounce the daemon? -
Jon Skarpeteig almost 10 yearsI use fairly short leases. I don't want to crontab a service restart, since truncating a large leases file seems to take a min - leaving the DHCP service off for the duration
-
MadHatter almost 10 yearsIs there a good reason not to use longer leases? That would prevent the file from growing so fast.
-
Jon Skarpeteig almost 10 yearsIt's only a workaround for DHCP scope running full.
-
MadHatter almost 10 yearsIt's only a workaround if there's a business reason to use short leases; otherwise, you're running misconfigured, and upset that the daemon won't clean up after you.
-
Jon Skarpeteig almost 10 years"The documentation suggests dhcpd does this itself automatically, but at a frequency of its choosing" -- URL?
-
Jon Skarpeteig almost 10 yearsLet us continue this discussion in chat.
-
MadHatter almost 10 yearsFor the avoidance of doubt, from
man dhcpd.leases
: "In order to prevent the lease database from growing without bound, the file is rewritten from time to time.". But Jenny D has provided an excellent answer (as usual!), and I think no further input is required of me.
-