远程 Fedora 系统无响应,尝试登录时出现奇怪但一致的行为

远程 Fedora 系统无响应,尝试登录时出现奇怪但一致的行为

我在一年前左右的 Fedora 安装上运行了许多网站。今晚,所有网站都停止响应。我一直试图登录进行调查,但无法登录,我不知道该怎么办。

服务器 ping 操作成功,响应时间还不错,~200ms。

当我按下“shh”键时,屏幕上会显示“上次登录:...”文本,但仅此而已。但是,如果我保持原样,然后打开另一个 ssh 会话,第一个会话实际上会登录(我已将其设置为使用密钥而不是密码),而新的会话会停留在“上次登录:...”处。我可以重复此操作多次 - 打开新的 ssh 会话总是会使先前打开的会话登录。

登录后,唯一可以持续运行而不会冻结连接的命令是ls在我的主目录中。我曾经能够运行sudo su一次,但其他时候都会在那里冻结,就像运行任何其他命令一样(我尝试过、、top) 。killall -9 httpdps aux

这种模式听起来熟悉吗?任何关于如何进行的提示都将不胜感激!

答案1

这听起来像是您的系统负载非常重。很可能是交换量很大或使用了磁盘 I/O。

我怀疑这种情况的发生是因为某种原因*) 您的网站突然收到大量针对某个大型动态页面的 http 请求,这导致 Apache 消耗了您所有的服务器资源。真正的原因很可能是数据库服务器负载过重且响应缓慢,这会增加您 Web 服务器上的页面加载时间,这会导致 Apache 消耗更多进程,从而导致服务器过载,进而导致您观察到的情况。

您的网站通常流量大吗?最好能给出一个大概的数字——我们说的是每天几千次点击、几万次点击还是几百万次点击……?

您的服务器有资源图表吗?像 snmpd+mrtg 或 Cacti 这样的图表可以绘制 CPU、内存、磁盘使用情况吗?如果有,是否有峰值?或者,如果您安装了sysstat软件包,那么您可能有sar可用的快照 - 尝试命令sar。它会每 10 分钟左右保存有关系统的各种信息,并通过它的报告您可以看到正在发生的事情。

这个 Fedora 安装是单独的物理服务器吗?还是它在某种程度上取决于您所说的 VMware 环境?可能是您的 VMware 基础架构的某些部分时不时会过载,而这才是导致问题的真正原因?

此外,尘埃落定之后,我会调查日志,看看是否有任何迹象表明内核正在大喊 OOM(内存不足)杀手,或者 httpd 日志是否看起来可疑。

通常,如果我无法亲眼在 httpd 日志中看到任何可疑内容,我会让 Webalizer 或类似的分析器运行该日志,看看输出中是否有任何 URL 弹出。或者我只是将日志传输到管道apachetop并查看发生了什么。

*) 原因可能是 DoS 攻击、行为不当的 PHP 脚本、错误的 .htaccess 文件导致您的 ErrorDocument 页面递归调用自身、Slashdot/reddit 效应或其他完全不同的东西。

答案2

哦,昨天早上我的虚拟服务器(通过 VMWare 运行的 CentOS 5.4)也遇到了同样的问题。当我尝试以详细模式使用 ssh 时,它挂在:

debug1: Entering interactive session.

如果我打开另一个 ssh 会话,第一个会话将继续显示一些调试信息并卡在:

debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login:

几分钟后,它实际上给了我一个命令提示符。

但下午,我可以正常 ssh。这对我来说很奇怪,我在 Google 上找不到任何信息。

PS:我也使用公钥代替密码。

相关内容