以下内容来自通义千问
当服务器的 CPU 和内存使用率达到 100%,导致 SSH 无法连接时,通常意味着系统资源已完全耗尽,无法响应新的网络请求(包括 SSH)。此时常规的远程管理手段失效,需要借助带外管理(Out-of-Band Management) 或 物理访问 来恢复系统。以下是可行的处理方法和预防建议:
许多服务器(尤其是企业级或云服务器)提供带外管理功能,即使操作系统无响应也能访问:
top、htop 查看高负载进程;kill -9 <PID> 终止占用资源的进程;如果无法通过控制台操作,且业务允许中断:
⚠️ 注意:强制重启可能导致数据丢失或文件系统损坏,仅在无其他选择时使用。
登录后立即执行以下命令:
bash# 查看 CPU/内存占用最高的进程
top
htop #(若已安装)
# 查看历史负载(需安装 sysstat)
sar -u # CPU
sar -r # 内存
# 检查是否有异常进程(如挖矿程序)
ps aux --sort=-%cpu | head -n 10
ps aux --sort=-%mem | head -n 10
systemd 的 MemoryMax、CPUQuota 限制服务资源;cgroups 或容器化(如 Docker)隔离关键服务;ulimit 限制用户进程资源。vm.overcommit_memory);journalctl --vacuum-time=7d)。| 措施 | 说明 |
|---|---|
| 预留资源余量 | 生产环境 CPU/内存使用率建议不超过 70% |
| 启用 swap(谨慎) | 可缓解内存不足,但可能引发 I/O 瓶颈 |
| 部署看门狗脚本 | 自动检测并重启失控进程 |
| 使用容器/微服务 | 限制单个应用资源上限 |
| 定期压力测试 | 模拟高负载场景,验证系统稳定性 |
当 SSH 因资源耗尽而失效时,唯一可靠的方法是通过带外管理(如云控制台 VNC/IPMI)介入。事后务必分析原因、限制资源、部署监控,防止问题复发。
如你使用的是特定云平台(如阿里云、AWS),可告知具体环境,我可以提供更详细的操作步骤。
本文作者:Nongsc
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!