在 Linux (Azure) 中找出哪个进程打开了一堆神秘的连接
Find out which process opens a bunch of mysterious connections in Linux (Azure)
在对我们的服务器进行压力测试时,我在 Azure 的 Ubuntu 16.04 运行 中看到很多 (200+) 打开 HTTPS 连接到神秘的 ip。这个ip是微软的。
- 这个 ip 不属于我们的任何机器,也不属于我们的服务
使用
- 关闭服务器进程时,连接仍会继续出现,但一次只出现 4-5 个,而启用压力测试和服务器进程时则为 200+ 个。服务器不是 运行 任何其他服务(从 Azure 全新安装 + 我们的流程)
- 无论我尝试做什么,我都看不到这些连接来自的进程(netstat、lsof 等。运行 作为 root)
netstat 打印了很多这些
$ sudo netstat -p | grep 52.239.137.70
tcp 0 0 10.0.2.6:59202 52.239.137.70:https TIME_WAIT -
...
尝试在网络浏览器(HTTP 或 HTTPS)中打开此 IP 时,您会看到此错误
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>InvalidUri</code>
<message xml:lang="en-US">
The requested URI does not represent any resource on the server. RequestId...
</message>
</error>
所以我猜这与 Azure Blob 服务有某种联系,因为在谷歌搜索错误消息时你会看到一堆论坛帖子故障排除 blob。
我已经排查了两天了,还是找不到答案。我担心这会在生产中的高负载下引起问题,因为在使用少量客户端进行测试时,您仍然会看到数百个这样的神秘连接。
我找到问题的原因了。卸载 LinuxDiagnostic Azure 扩展似乎会阻止连接出现。关联进程 (mdsd) 也使用了大量内存。
在对我们的服务器进行压力测试时,我在 Azure 的 Ubuntu 16.04 运行 中看到很多 (200+) 打开 HTTPS 连接到神秘的 ip。这个ip是微软的。
- 这个 ip 不属于我们的任何机器,也不属于我们的服务 使用
- 关闭服务器进程时,连接仍会继续出现,但一次只出现 4-5 个,而启用压力测试和服务器进程时则为 200+ 个。服务器不是 运行 任何其他服务(从 Azure 全新安装 + 我们的流程)
- 无论我尝试做什么,我都看不到这些连接来自的进程(netstat、lsof 等。运行 作为 root)
netstat 打印了很多这些
$ sudo netstat -p | grep 52.239.137.70
tcp 0 0 10.0.2.6:59202 52.239.137.70:https TIME_WAIT -
...
尝试在网络浏览器(HTTP 或 HTTPS)中打开此 IP 时,您会看到此错误
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>InvalidUri</code>
<message xml:lang="en-US">
The requested URI does not represent any resource on the server. RequestId...
</message>
</error>
所以我猜这与 Azure Blob 服务有某种联系,因为在谷歌搜索错误消息时你会看到一堆论坛帖子故障排除 blob。
我已经排查了两天了,还是找不到答案。我担心这会在生产中的高负载下引起问题,因为在使用少量客户端进行测试时,您仍然会看到数百个这样的神秘连接。
我找到问题的原因了。卸载 LinuxDiagnostic Azure 扩展似乎会阻止连接出现。关联进程 (mdsd) 也使用了大量内存。