Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
    
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 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 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 at 7:42
    
It's only a workaround for DHCP scope running full. –  Jon Skarpeteig Sep 2 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 at 8:50

1 Answer 1

up vote 6 down vote accepted

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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