Her saniye InetAddress.getByName ("example.com") çağıran döngüler küçük bir Java programı var. 'Strace -f' kullanarak bir CentOS 6.4 kutusunda çalıştırdığımda /etc/resolv.conf dosyasının açıldığını ve bir kez okunduğunu görüyorum:
$ grep /etc/resolv.conf strace.out
[pid 24810] open("/etc/resolv.conf", O_RDONLY) = 6
Debian 7'de çalıştırdığımda, /etc/resolv.conf dosyasının tekrar tekrar açıldığını veya stat () 'd:
$ grep /etc/resolv.conf strace.out
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
Her iki sistem de /etc/nsswitch.conf ile yapılandırılmıştır.
hosts: dosyalar dns
Her iki sistemde de çalışan bir önbellek cini var.
Java farklılıklarını ekarte etmek için her iki makinede de Oracle HotSot Java JVM'nin aynı sürümünü kullandım.
CentOS 6.4 kutusunda glibc 2.12 yüklü. Debian 7 kutusunda glibc 2.13 yüklü.
/Etc/resolv.conf dosyasının açılması ve okunması açısından iki işletim sistemi arasındaki farklı davranışın nedeni nedir?