Improving name resolution performance
AIX 6.1 introduced the netcd daemon which caches protocol (e.g. DNS) resolutions. It is started by the SRC (System Resource Controller) from “/etc/rc.tcpip”, however it is normally commented out/disabled and won’t run unless you create a configuration file.
The default file is “/etc/netcd.conf”
A really basic example is:
# cat /etc/netcd.conf
cache all protocols 600 1440
This caches all protocol resolutions with a hash table of 600 lines for 24 hours.
Once the file has been created you can activate the daemon after each reboot by editing the “/etc/rc.tcpip” as follows:
# Start up netcd daemon
start /usr/sbin/netc “$src_running”
To manually start the daemon enter:
# startsrc -s netcd
To query it’s status:
# lssrc -l -s netcd
Subsystem Group PID Status
netcd netcd 12255406 active
Configuration File /etc/netcd.conf
Configured Cache local protocols
Configured Cache dns protocols
Configured Cache nisplus protocols
Configured Cache nis protocols
Configured Cache ulm protocols
The “/etc/netcd.conf” file has four different types of configurations:
_ Caching settings
_ Security settings
_ Log level settings
_ Daemon settings
The /etc/netcd.conf file has four different types of configurations:
1. Caching settings: You can specify what resolver should be cached:
# cache <type_of_cache> <type_of_map> <hash_size>< cache_ttl>
(default setting: cache all all 128 60)
(example for a DNS cache: cache dns hosts 128 0)
Declares the type of cache. Possible values are all, local, dns, nis, nisplus, and yp.
Declares the map to be used to do the lookup. Check netcd.conf man page or look at the sample file for a complete list.
Specifies the number of lines used for the cache. (An hash table is used to store the cache)
Declares the time to life for a cache entry. The unit is minutes. The TTL is not used for local resource caches.
If you specify a value other than 0 for DNS caches, it will overwrite the TTL of the DNS server response.
2. Security settings:
You can specify under which user and group a netcddaemon should be run. The default user is root and the default group is system.
3. Log level settings:
The netcddaemon creates a log file in /var/tmp/netcd.log. You can specify a different log file location, a log file size limit in KB, and the number of log file rotations. The default setting is no size limit and therefore no rotations are taken.
Use this syntax to change the settings:
4. Daemon settings
Specifies how often netcddaemon looks for expired cache entries in network caches. The unit is min., default is 1.
Specifies how often the netcddaemon checks for changes to the local resources. The unit is minutes, default is 1.
Indicates the message queue size. The unit is the number of outstanding requests, default value is 256.
Dump cache content
With the netcdctrl command you can dump the cache contents to a file. The dump can be either in binary or ascii format. To dump the DNS cache in ASCII format use the following command:
# netcdctrl -t dns -e hosts -a /tmp/netcd.cache.out
Displaying caching stats with netcdctrl
# netcdctrl -t dns -e hosts -s /tmp/netcd.stats
# more /tmp/netcd.stats
CACHE dns, hosts, name
Hash index : 0, Max number of entries : 0, Current number of entries : 0