我创建了一个运行 Amazon AMI 的 Amazon EC2 微型实例。我使用 ssh 客户端登录到服务器。成功登录后,如果我发出“top”命令,则 top 输出永远不会出现,命令也永远不会返回。它不断地等待。我必须终止 ssh 会话并重新登录。当然,java、tomcat 等其他东西都不起作用。
我重新启动了服务器,同样的问题仍然存在。我终于将实例更改为“小”实例,即使在那里我也面临着同样的问题。
在一天中的某些时候,没有上述问题似乎工作正常。
有人对为什么会这样有任何想法吗?这与 CPU 窃取或抖动有关吗?
已解决:“为避免 MTU 设置和数据包丢失的潜在问题,还要添加一个规则以允许“所有 ICMP”。创建新规则后,单击应用规则更改。” 从此链接获得解决方案 - http://code.google.com/p/opendatakit/wiki/AggregateAWSInstall
每当我遇到像这样的可疑网络挂起时,我都会怀疑 MTU 问题。尝试
cat
ing 一个大的文本文件(超过 4k 的东西),看看这是否也会挂起会话。如果是这样,几乎可以肯定您在导致问题的路径上某处有一个小的 MTU(特别是因为它取决于一天中的时间;也许您的流量在一天中的不同时间采用不同的路线)。Google 周围(或提出一个新问题)以找出如何解决 MTU 问题(我不会花很长时间在这里全部写出来,以防我错了)。不,但您可以轻松获得一些有关挂起进程的调试信息。
大概你可以登录到另一个 ssh 会话,(或者如果没有确保你已经打开了 2 个会话)
所以基本上如果我像这样开始一个长时间运行的过程
sleep 1000
我可以像这样从另一个终端会话中找到它;
我可以使用该工具检查该进程正在执行的系统调用
strace
(来自 yum/apt 存储库中的 strace 包)