【银河麒麟服务器操作系统·实例分享】虚机系统ssh无法正常登录访问,分析过程及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

服务器环境以及配置

【机型】虚机

|----------|-------------|
| 处理器: | Kunpeng-920 |
| 内存: | 32G |
| 整机类型/架构: | ARM |

【内核版本】

4.19.90-25.21.v2101.ky10.aarch64

【OS镜像版本】

银河麒麟高级服务器操作系统 Kylin-Server-10-SP2-Release-Build09-20210524-aarch64

【第三方软件】

Java应用

现象描述

在2024年4月11日10点15分前后,发现虚机系统ssh无法正常登录,进入虚机控制台,也无法正常登录进入系统。过10分钟左右之后,可以ssh登录系统,使用top命令查看发现dbus占用单核cpu为99%,比较高。需要分析,系统在故障时间段内,不能正常登录使用的原因。如图1:

图1

现象分析

分析系统性能日志,查看故障时间段内2024.04.11 10点15分前后,系统性能是否有使用异常情况,分别查看系统整体CPU、内存和负载,未发现异常,查看磁盘IO读写性能,看到,在2024.04.11 10:10至10:20左右这个故障时间段内,磁盘IO读相较其他时间段,有明显增加,说明此时间段内,业务访问可能比较繁忙,如图2至图5:

图2 CPU

图3 内存

图4 负载

图5 磁盘IO

分析系统ssh登录日志secure,发现故障时间段内2024.04.11 10:06:37至10:21:54,login登录有一段找不到pam_console.so动态库模块信息输出"PAM unable to dlopen(/usr/lib64/security/pam_console.so): /usr/lib64/security/pam_console.so: cannot open shared object file: No such file or directory",其他日志信息都是ssh会话正常登录信息。

进一步分析排查正常银河麒麟系统里,也没找到pam_console.so这个pam模块,说明系统未提供此pam模块,也没影响系统ssh和图形界面正常登录访问,这段找不到pam_console.so模块的信息输出,不是ssh和图形登录界面,无法正常登录访问的原因。如图6:

图6

分析系统messages日志,发现故障时间段内2024.04.11 10:02:16至13:19:05,有很多"kernel: 6147721.639282 VFS: file-max limit 655350 reached"异常日志信息输出,说明此系统上内核打开的文件句柄数量达到上限,当前系统的文件句柄数量已经超出了系统级文件句柄数量file-max设置。已知,Linux系统中的进程都会打开一定数量的句柄,如果所打开的句柄超过了限制,则会导致之后的申请失败,有可能会影响到后面,正常服务运行使用。如图7:

图7

通过sosreport系统日志,查看此系统资源配置文件/etc/security/limits.conf,可知,任何用户可以打开的最大文件描述符设置的是409600,任何用户可以打开的最大进程数是65536。查看系统级文件句柄数量和使用情况,可知,/etc/sysctl.d/my-default.conf自定义设置的系统级文件句柄数量fs.file-max为655350。如图8和图9:

图8

图9

进一步分析查看,当前系统文件句柄使用情况,发现,第一列表示当前系统已分配使用的文件句柄数量,超过了,系统级设定值。查看打开文件句柄数量进程的情况,发现,java进程打开文件句柄数量最多,如图10:

图10

分析结果

根据上述,系统层日志和配置分析情况,可以排除,故障时间段内,有系统性能方面的使用瓶颈,资源耗尽,导致业务虚机不能正常登录访问。同时排除openssh远程连接服务或系统图形登录界面服务lightdm有问题,导致。

导致此故障现象的原因,可能是,系统级文件句柄数量file-max设置的值较小,业务繁忙时间段,java等应用服务需要打开的文件句柄较多,超过了系统级设置值,导致之后正常系统服务申请失败,短时间内不能正常运行使用。过了一段时间之后,业务不繁忙,java等应用自动释放掉申请的文件句柄,可以正常登录访问系统。

后续计划与建议

建议排查相关应用,查看是否有需要进行检查和优化的方面。根据业务使用需求,调整增加系统层最大文件句柄打开数fs.file-max配置项参数,举例配置如下:

#echo "fs.file-max=6553500" >> /etc/sysctl.conf --添加配置

#sysctl -p --配置生效

#sysctl -a | grep fs.file-max --查看配置是否生效

相关推荐
冬奇Lab1 天前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
uniquejing1 天前
《每次 API 调用前扔掉 43% Token,我开源了一个 AI 提示词瘦身工具》
开源
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
文心快码BaiduComate2 天前
Comate 搭载GLM-5.2:百万上下文,稳定支撑长程任务
前端·程序员·开源
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
冬奇Lab3 天前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯