ソケット接続によりsudoが遅くなる

ソケット接続によりsudoが遅くなる

しばらく前から、sudoは私たちのサーバーでゆっくり動作し始めました。時々、実行されるまで数分待つ必要があるかもしれません。

フォーラムですべてのホスト名とDNSの理由を確認しましたが、問題はまだ解決しません。このサーバーでは、サーバー名が正しく解決されたことを確認できます。

straceを使用してsudoをデバッグすると、次のような興味深い結果が得られます。

 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, "\24\0\0\0\22\0\1\3T\373\206S\0\0\0\0\0\0\0\0", 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)=[{"$\2\0\0\20\0\2\0T\373\206Su\251\0\0\0\0\0\3\0\3339\0\321\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, ms
 0.000160 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\340\3\0\0\20\0\2\0T\373\206Su\251\0\0\0\0\376\377\0\2639\0\321\20\1\0\0\0\0\0"..., 4096}], msg_controll
 ...

最後の2つのrecvmsg行は約4000回繰り返されます!受信した4000個のソケットがこの速度低下の原因です(最初の呼び出し時間を参照してください。これは最初の2つです...)。

私たちのサーバーは、sudo 1.8.3p1を含むUbuntu 12.04です。

このsudoバージョンのソースも確認しましたが、これらのソケット呼び出しは存在しません...助けてください:)

ベストアンサー1

問題のある場所は次のとおりです。https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1272414

私たちのサーバーには多くのipipトンネルがあるので、sudoはすべてのインターフェースを調べようとします。

適切な無視機能を含む新しいバージョンで問題が解決されました。

おすすめ記事