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?

  • The 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? – MadHatter Sep 2 '14 at 7:12
  • I 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 – Jon Skarpeteig Sep 2 '14 at 7:25
  • 2
    Is there a good reason not to use longer leases? That would prevent the file from growing so fast. – MadHatter Sep 2 '14 at 7:42
  • It's only a workaround for DHCP scope running full. – Jon Skarpeteig Sep 2 '14 at 8:35
  • 2
    It'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. – MadHatter Sep 2 '14 at 8:50

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


to the number of seconds you'd prefer.


Check the answer to my question How do I purge dhcpd.leases. In my case the ownership of /var/lib/dhcp was root:root owing to a bug in isc-dhcp-server. Changing it to dhcpd:dhcpd fixes the problem temporarily, but it comes back when dhcpd restarts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.