dns 服务是针对域名解析成IP的域名系统,作用为了隐藏IP。现网上主要采用mysql+bind来做域名与IP的映射关系。
一:
1。dns配置
window:网络共享中心---对应的网络--属性---tcp/ipv4 测试:ping 域名地址有无解析为IP
linux: /etc/resloved.conf 添加nameserver 测试:dig nslookup 命令
2。如何设置dns缓存时间(可以做客户端压测考虑因素):
window操作方法:
(1). 启动注册表编辑器 (Regedit.exe)。
( 2). 在注册表中找到并单击以下项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
(3). 在“编辑”菜单上,指向“新建”,单击“DWORD 值”,然后添加下列注册表值:
数值名称:MaxCacheTtl (注意肯定条目和否定条目的区别)
数据类型: REG_DWORD
默认值:86400 秒
数值数据:如果您将客户端的 DNS 缓存中的最大 TTL 值降低为 1 秒,则客户端 DNS 缓存看起来已被禁用。
linux配置: 注意全局和对应的容器修改区别
(1).全局修改jvm ttl事件 ,但不能使用容器类里面的缓存时间生效(有待验证)
( 2).容器修改缓存时间。
以:以websphere为例
第一个方式:
选择服务器-> 应用程序服务器-> Server1-> 进程定义->Java 虚拟机。
滚动到通用 JVM 参数,添加:
-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
单击确定以保存更改
第二个方式:
修改XML文件
IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\liangwgNode01Cell\nodes\liangwgNode01\servers\server.xml
在文件末尾,在属性“disableJIT="false"”之前的位置,
添加:genericJvmArguments="-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
二:dns出现unknowhost异常
排除了丢包,服务器本身的性能来说,如果dns服务器出现cpu 消耗不大,内存消耗也不大,可考虑查看域名反析
三:客户端优化
1、在Linux主机上的nsswitch.conf的配置文件中,将域名解析的顺序确定成dns,files,就是如果从dns解析出,会从本地的files(hosts)进行获取,并在本机上添加相应hosts配置,这样做一个本地的容错方案。
2、对于resolv.conf中配置的nameserver,建议去掉无用。
3、将客户端的JVM的ttl的dns缓存参数调整为5分钟,即300秒,减少去dns访问的频率。
4、修改DNS的服务器端的缓存时间,减少读取数据库的频率。