前言

此文不涉及到因网络、防火墙设备而导致的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不能连接及报错的问题总结的更多相关文章

  1. 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' ...

  2. redis运用连接池报错解决

    redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...

  3. Asp.Net连接Mysql报错Out of sync with server

    Asp.Net连接Mysql报错Out of sync with server 原因:程序引用的MySql.Data.dll版本高于服务器版本 解决:下载一个低版本的MySql.Data.dll,项目 ...

  4. Atom远程连接服务器报错服务器版本和客户端版本不一致

    Atom远程连接服务器 报错信息: Server version is different than client version Original error message: Version mi ...

  5. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

    Navicat连接Mysql报错:Client does not support authentication protocol requested by server: 刚安装Mysql,想用Nav ...

  6. 【原创】大叔问题定位分享(33)beeline连接presto报错

    hive2.3.4 presto0.215 使用hive2.3.4的beeline连接presto报错 $ beeline -d com.facebook.presto.jdbc.PrestoDriv ...

  7. 【原创】大叔经验分享(38)beeline连接hiveserver2报错impersonate

    beeline连接hiveserver2报错 Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost: ...

  8. 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 ...

  9. 【centOS】【xshell】xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host

    如题  xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host 快捷解决方法: 在虚拟机上centOS重新启动网络,即可解决问 ...

随机推荐

  1. bootstrap modal垂直居中 (转)

    根据博友的经验,总结后请使用方法一就行了 一,修改bootstrap.js 源码 原来的: Modal.prototype.adjustDialog = function () { ].scrollH ...

  2. APR欺骗

    ARP欺骗简介 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据监听.篡改.重放.钓鱼等攻 ...

  3. pandas数据表

    安装  pip3 install pandas s=pd.Series([1,3,6,90,44,1])   #创建序列[用列表创建].数据源的维度必须是一维 #data  指定数据源 print(s ...

  4. spoj gss1 gss3

    传送门 gss1 gss3 spoj gss系列=最大字段和套餐 gss1就是gss3的无单点修改版 有区间查询和单点修改,考虑用线段树维护 我们要维护区间权值和\(s\),区间最大前缀和\(xl\) ...

  5. rem,em

    任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的body选择 ...

  6. D - Searching the String (AC自动机)

    题目链接:https://cn.vjudge.net/contest/281961#problem/D 题目大意:给你一个模式串,然后给你多个匹配串,匹配串的类型是包括可以覆盖的以及不可覆盖的. 具体 ...

  7. 深入解析Java AtomicInteger 原子类型

    深入解析Java AtomicInteger原子类型 在进行并发编程的时候我们需要确保程序在被多个线程并发访问时可以得到正确的结果,也就是实现线程安全.线程安全的定义如下: 当多个线程访问某个类时,不 ...

  8. 在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错

    在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错,如何解决 控制器代码如下: // // ViewController.m // 02-模型中的赋值 // // Cre ...

  9. CAP理论介绍

    经典CAP图 分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳: ●一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ...

  10. CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解

    一.Cobbler安装 前提:cobbler由epel源提供,故此需要事先配置指向epel的yum源方可进行类似下面的安装过程. # yum install -y epel-release # yum ...