关于SSH不能连接及报错的问题总结
前言
此文不涉及到因网络、防火墙设备而导致的SSH不能访问。运维常见问题,这里不做过多的讲解,主要讲讲出了大家所知道的,还有其他什么原因会导致SSH无法访问呢?好了,那么,如果想知道的话,那就继续往下看。
故障说明

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

what fuck ? 没有分配内存给他。。。。
吓的我赶紧 Google 一下!然而并没有谷歌出来啥呢......尴尬,不过,老夫还是发现了一些东西。
故障猜测
根据百度、谷歌出来的文档,可以得出如下猜测:
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 以及最大线程数。
关于SSH不能连接及报错的问题总结的更多相关文章
- PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)
如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...
- redis运用连接池报错解决
redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...
- Asp.Net连接Mysql报错Out of sync with server
Asp.Net连接Mysql报错Out of sync with server 原因:程序引用的MySql.Data.dll版本高于服务器版本 解决:下载一个低版本的MySql.Data.dll,项目 ...
- Atom远程连接服务器报错服务器版本和客户端版本不一致
Atom远程连接服务器 报错信息: Server version is different than client version Original error message: Version mi ...
- Navicat连接Mysql报错:Client does not support authentication protocol requested by server;
Navicat连接Mysql报错:Client does not support authentication protocol requested by server: 刚安装Mysql,想用Nav ...
- 【原创】大叔问题定位分享(33)beeline连接presto报错
hive2.3.4 presto0.215 使用hive2.3.4的beeline连接presto报错 $ beeline -d com.facebook.presto.jdbc.PrestoDriv ...
- 【原创】大叔经验分享(38)beeline连接hiveserver2报错impersonate
beeline连接hiveserver2报错 Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost: ...
- java项目连接jdbc报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server
java项目连接jdbc报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not creat ...
- 【centOS】【xshell】xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host
如题 xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host 快捷解决方法: 在虚拟机上centOS重新启动网络,即可解决问 ...
随机推荐
- datetimepicker bootstrap的时间插件显示位置问题及其他配置
位置问题: 在bootstrap中用 datetimepicker 时默认是在输入框下面弹出的, 但是遇到输入框在屏幕最下面时,日期选择框会有一部分在屏幕下面,显示不了,因此需要能够从上面弹出. 可以 ...
- text-decoration和text-indent和text-shadow
text-decoration 属性规定添加到文本的修饰,规定划线的位置. <html> <head> <style type="text/css"& ...
- 在浏览器中使用Javascript
在浏览器中点击鼠标右键——检查,选择console,可以在里面写Javascript代码,并可以在页面实时看到结果: 关于JavaScript的几个注意事项: JavaScript 语句和 JavaS ...
- Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行
1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用 ...
- vscode 配置Git
步骤: 下载Git客户端 配置环境变量 设置vscode与Git的关联 重启 步骤一: 该网址,下载即可. https://git-scm.com/downloads 步骤二: 计算机 > 属性 ...
- win10如何获得管理员权限_百度经验
win10如何获得管理员权限_百度经验http://jingyan.baidu.com/article/0aa223755448db88cd0d6450.html 在右下方任务栏的“搜索web和win ...
- java工程师之旅-一个月工作心得
不知不觉,在工作中已经度过一个月,距离上次写文章已经好几个月了,正好还有二十分钟下班,抽点时间来写一下博文,写一下心得. 首先说一下,在我工作之前,做了一个项目,和一个外校大四的学生做一个毕业设计,一 ...
- shiro自定义realm认证(五)
上一节介绍了realm的作用: realm:需要根据token中的身份信息去查询数据库(入门程序使用ini配置文件),如果查到用户返回认证信息,如果查询不到返回null.token就相当于是对用户输入 ...
- host-only
https://www.cnblogs.com/yaox/p/6635312.html
- win10-Anaconda2-Theano-cuda7.5-VS2013
两天的辗转反侧,终于灵光一现找到了错误. 首先,我在win10下配置好了gpu和cudnn版本的caffe.但是因为win平台的限制,caffe用的不够舒服.因为之前用过一阵子theano,虽然很慢, ...