• 关于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 以及最大线程数。

  • 相关阅读:
    Memcache相关面试题
    Memcache使用场景
    php链接memcache操作
    永久数据被踢现象
    linux 压缩/解压命令大全
    Linux系统信息查看命令大全
    bundle update: env: ruby_executable_hooks: No such file or directory
    Pod::Executable pull
    Android签名机制:生成keystore、签名、查看签名信息
    Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1
  • 原文地址:https://www.cnblogs.com/yangxiaoyi/p/8317773.html
Copyright © 2020-2023  润新知