sudo lento por causa de conexões de soquete

1

Algum tempo atrás, o sudo começou a se comportar muito devagar em nosso servidor. Algumas vezes temos que esperar até alguns minutos até que seja executado.

Eu verifiquei todos os nomes de host e dns faz com que todos os fóruns cheios, mas o problema ainda persiste. Posso confirmar que os nomes dos servidores foram resolvidos corretamente neste servidor.

A depuração do sudo com strace fornece resultados interessantes:

 0.000080 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
 0.000153 lseek(3, 0, SEEK_CUR)     = 0
 0.000044 fstat(3, {st_mode=S_IFREG|0644, st_size=1809, ...}) = 0
 0.000060 mmap(NULL, 1809, PROT_READ, MAP_SHARED, 3, 0) = 0x7f91b3dd3000
 0.000042 lseek(3, 1809, SEEK_SET)  = 1809
 0.000057 munmap(0x7f91b3dd3000, 1809) = 0
 0.000038 close(3)                  = 0
 0.000077 getgroups(0, NULL)        = 1
 0.000039 getgroups(1, [0])         = 1
 0.000045 getcwd("/home/myself", 4096) = 12
 0.000053 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
 0.000184 fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
 0.000111 readlink("/proc/self/fd/0", "/dev/pts/6", 4095) = 10
 0.000095 stat("/dev/pts/6", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
 0.000079 uname({sys="Linux", node="OUR-SERVER", ...}) = 0
 0.000072 ioctl(2, TIOCGWINSZ, {ws_row=65, ws_col=205, ws_xpixel=0, ws_ypixel=0}) = 0
 0.000055 socket(PF_NETLINK, SOCK_RAW, 0) = 3
 0.000044 bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
 0.000042 getsockname(3, {sa_family=AF_NETLINK, pid=43381, groups=00000000}, [12]) = 0
 0.000042 sendto(3, "
 0.000080 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
 0.000153 lseek(3, 0, SEEK_CUR)     = 0
 0.000044 fstat(3, {st_mode=S_IFREG|0644, st_size=1809, ...}) = 0
 0.000060 mmap(NULL, 1809, PROT_READ, MAP_SHARED, 3, 0) = 0x7f91b3dd3000
 0.000042 lseek(3, 1809, SEEK_SET)  = 1809
 0.000057 munmap(0x7f91b3dd3000, 1809) = 0
 0.000038 close(3)                  = 0
 0.000077 getgroups(0, NULL)        = 1
 0.000039 getgroups(1, [0])         = 1
 0.000045 getcwd("/home/myself", 4096) = 12
 0.000053 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
 0.000184 fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
 0.000111 readlink("/proc/self/fd/0", "/dev/pts/6", 4095) = 10
 0.000095 stat("/dev/pts/6", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
 0.000079 uname({sys="Linux", node="OUR-SERVER", ...}) = 0
 0.000072 ioctl(2, TIOCGWINSZ, {ws_row=65, ws_col=205, ws_xpixel=0, ws_ypixel=0}) = 0
 0.000055 socket(PF_NETLINK, SOCK_RAW, 0) = 3
 0.000044 bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
 0.000042 getsockname(3, {sa_family=AF_NETLINK, pid=43381, groups=00000000}, [12]) = 0
 0.000042 sendto(3, "%pre%%pre%%pre%%pre%T36S%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
 0.418298 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"$%pre%%pre%%pre%%pre%T36Su1%pre%%pre%%pre%%pre%%pre%%pre%39%pre%1%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, ms
 0.000160 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0%pre%%pre%%pre%%pre%T36Su1%pre%%pre%%pre%%pre%67%pre%39%pre%1%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controll
 ...
%pre%%pre%%pre%T36S%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 0.418298 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"$%pre%%pre%%pre%%pre%T36Su1%pre%%pre%%pre%%pre%%pre%%pre%39%pre%1%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, ms 0.000160 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0%pre%%pre%%pre%%pre%T36Su1%pre%%pre%%pre%%pre%67%pre%39%pre%1%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controll ...

E as últimas 2 linhas recvmsg repetidas cerca de 4000 vezes !!! Este 4000 soquete recebe são responsáveis por este abrandar (observe o tempo na primeira chamada - e estes são apenas os primeiros 2 ...).

Nosso servidor é o Ubuntu 12.04 com o sudo 1.8.3p1.

Eu até examinei as fontes desta versão do sudo, e essas chamadas de soquete não estão lá ... Por favor, ajude:)

    
por er453r 29.05.2014 / 11:36

1 resposta

0

Esse foi o problema: link

Existem muitos túneis ipip em nosso servidor, então o sudo tentou testar todas as interfaces.

A nova versão com as devidas ignoras resolveu o problema.

    
por 16.06.2014 / 15:18

Tags