关于SSH不能链接及报错的问题总结

前言bash

此文不涉及到因网络、防火墙设备而致使的SSH不能访问。运维常见问题,这里不作过多的讲解,主要讲讲出了你们所知道的,还有其余什么缘由会致使SSH没法访问呢?好了,那么,若是想知道的话,那就继续往下看。服务器

故障说明网络

从监控看,咱们这两台服务器只是SSH端口不能访问。经过查看监控以及简单的网络监测,发现系统是正常运行的,而且里面的服务也是可以访问到,包括zabbix-agent都正常。这个问题简直奇葩,简直莫名其妙。因为进不去系统,只能重启机器。经过日志,咱们看到以下的信息:运维

what fuck ? 没有分配内存给他。。。。spa

吓的我赶忙 Google 一下!然而并无谷歌出来啥呢......尴尬,不过,老夫仍是发现了一些东西。线程

故障猜想日志

根据百度、谷歌出来的文档,能够得出以下猜想:blog

       1. 可能真的存在内存不足;队列

       2. 因为某些资源限制,致使的系统资源不能分配给SSH,好比 limit 限制和 pid_max 限制;进程

故障分析

 1. 排除内存不足

 排除方法,经过查看 dmesg/messages 日志并无出现 "Out of memory"。

2. 某些资源限制

经过命令 " sysctl kernel.pid_max " 得出 " kernel.pid_max = 32768 ",居然是默认大小;可是,怎么会把 pid 用到了 32768 的呢?这个问题我尚未搞明白,主要是当时也没法登录系统,没法查看当时的系统状况。遇到这种状况,我都是直接修改参数再说,将 "echo "kernel.pid_max=99999" >> /etc/sysctl.conf " ,而后执行 "sysctl -p"便可。等待观察便可....这里还有一个地方,也须要做为查看目标,那就是 "/etc/security/limits.conf"。至于怎么改,本身百度便可。

其余说明

相关命令总结:

cat /proc/loadavg
0.04 0.04 0.05 1/2078 23615  

lavg_1 (0.04) 1-分钟平均负载。

lavg_5 (0.04) 5-分钟平均负载。

lavg_15(0.05) 15-分钟平均负载。

nr_running (1) 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相赞成思。

nr_threads (2078) 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)。

last_pid(23615) 最大的pid值,包括轻量级进程,即线程。

cat /proc/sys/kernel/pid_max && cat /proc/sys/kernel/threads-max  

查看系统最大pid 以及最大线程数。

相关文章
相关标签/搜索