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?
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
to the number of seconds you'd prefer.