天天看点

<ubuntu ping响应慢 延迟严重解决方案>

监控一直报警,烦的要命。

 排除这几项:

1.ip配置问题;

2.dns解析问题;

3.网线问题;

    试着新装ubuntu server看看,ping 依旧存在此问题,centos、redhat玩多了,碰到这个还真是太相信自己水平,但就是解决不了ping的问题。

后来发现是因为/etc/nsswitch.conf文件中hosts的配置有问题,做如下修改后正常:

# /etc/nsswitch.conf

#

# Example configuration of GNU Name Service Switch functionality.

# If you have the `glibc-doc-reference' and `info' packages installed, try:

# `info libc "Name Service Switch"' for information about this file.

passwd:         compat

group:          compat

shadow:         compat

#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4   //注释掉此行

hosts:          files dns        //添加下面这行

networks:       files

protocols:      db files

services:       db files

ethers:         db files

rpc:            db files

netgroup:       nis

~

不用重启,现在ping一切正常了。

问题错在:

当需要提供nsswitch.conf文件所描述的信息的时候,系统将检查含有适当info字段的配置行,它按照从左向右的顺序开始执行配置行中指定的方法。在默认情况下,如果找到期望的信息,系统将停止搜索。如果没有指定action,那么当某个方法未能返回结果时,系统就会尝试下一个动作,有可能搜索结束都没有找到想要的信息。 

例如下面两行nsswitch.conf文件配置行:

host nis files dns

        通过#strace /etc/nsswitch.conf  可以查看到其实,延迟的原因是在nis这块,它在调用搜索nis库时,一直找不到,耽误过多的时间,继续下一个搜索,找到了,从而出现延迟。

        strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,

必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1757923

继续阅读