【银河麒麟服务器操作系统·实例分享】虚机系统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 --查看配置是否生效

相关推荐
Jimmy_jimi7 分钟前
利用nginx代理完成url重定位
运维·nginx
liuyicenysabel38 分钟前
多服务上线日记三:
运维·服务器·笔记·学习
吠品2 小时前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
一只鹿鹿鹿2 小时前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
YXXY3132 小时前
网络基础2(三)
网络
Fnetlink12 小时前
开源安全年度报告:2026上半年20大最具破坏性破坏事件深度复盘
安全·开源
xyz_CDragon3 小时前
从 RTL 到 GDSII:人与 AI 协作,用开源 EDA 工具链完成 SHA-256 芯片的 SoC 集成与签核全流程(附完整流程+代码)
人工智能·开源·芯片设计·开源 eda·caravel
m24tyy3 小时前
常见空间测绘搜索引擎介绍和使用以及子域名的收集
网络·测试工具·搜索引擎
数据安全技术观察3 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
我爱cope3 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络