Knowledge Base ISC Main Website Ask a Question/Contact ISC
Synchronous Disk Writes and DHCP Performance Limitations
Author: ISC Support Reference Number: AA-00373 Views: 8176 Created: 2011-07-20 22:47 Last Updated: 2017-03-20 22:06 0 Rating/ Voters

Problem:

DHCP performance can be limited by disk I/O.  Every lease issued by the DHCP server (every DHCP ACK) incurs a write to the dhcpd.leases file.  Messages sent to syslog are generally written at some point to a system log file. Modern I/O devices vary considerably in their performance characteristics but in general writes to a file system stored on a traditional hard disk are extremely slow compared to other operations performed by the server and may create a bottleneck which will affect your DHCP server's performance.

Solutions:

Here are some tips to help you speed performance on an I/O bound server:

  • Although every lease needs to be written to disk, you may be able to realize performance increases by changing the configuration parameters for"delayed-ack" and "max-ack-delay", causing the DHCP server to batch-write leases to disk, eliminating costly fsyncs.
  • If you have the option to do so, moving the leases file to an SSD or other high-performance, low latency storage system can dramatically speed lease writes and reduce blocking.
  • If you are using DDNS in conjunction with DHCP, you may see better performance using ISC dhcpd 4.2 or later, as dynamic DNS updates are performed asynchronously starting in 4.2.
  • Be aware that not all versions of syslog behave identically. In particular some (not all) Linux implementations (and possibly on other OS platforms as well) default to synchronous writes. If your default syslog is causing you problems there are many alternative open software versions available with which you can replace it.
If you are still experiencing I/O limitations after trying the previous suggestions, other approaches you can take to achieve greater performance include adjusting the lease time upwards to reduce the frequency of renewals and configuring parallel servers and dividing the address space served by them into separate pools.

RAM disk storage not recommended for dhcp leases file.

Although you can get near-instantaneous write performance by putting the dhcpd.leases file on a RAM disk based filesystem, we do not recommend storing the leases file on a volatile file system because of the problems that can be caused if it is lost.  If you choose to store the leases file on a RAM disk, be careful to back it up frequently to mitigate the risk of sudden data loss.

Optionally disabling synchronous writes

There is a configuration option in versions of ISC DHCP 4.3.0 and higher named "dont-use-fsync".  Declaring this option in your dhcpd.conf file will tell the server to skip synchronizing writes after updating the lease database.  ISC does not recommend using this option to increase performance unless you know what you are doing and have other measures in place to preserve lease file consistency -- use of this option increases the chance that if the server is suddenly interrupted the lease file will end in an inconsistent state.




© 2001-2017 Internet Systems Consortium

For assistance with problems and questions for which you have not been able to find an answer in our Knowledge Base, we recommend searching our community mailing list archives and/or posting your question there (you will need to register there first for your posts to be accepted). The bind-users and the dhcp-users lists particularly have a long-standing and active membership.

ISC relies on the financial support of the community to fund the development of its open source software products. If you would like to support future product evolution and maintenance as well having peace of mind knowing that our team of experts are poised to provide you with individual technical assistance whenever you call upon them, then please consider our Professional Subscription Support services - details can be found on our main website.

Feedback
  • There is no feedback for this article
Quick Jump Menu