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

相关推荐
涔溪33 分钟前
HTTP TCP三次握手深入解析
网络·tcp/ip·http
憨子周34 分钟前
2M的带宽怎么怎么设置tcp滑动窗口以及连接池
java·网络·网络协议·tcp/ip
三菱-Liu2 小时前
三菱MR-J4-B伺服连接器和信号排列
网络·驱动开发·硬件工程·制造·mr
WeeJot嵌入式2 小时前
网络安全:挑战、策略与未来趋势
网络
矛取矛求2 小时前
Linux如何更优质调节系统性能
linux
小牛itbull3 小时前
ReactPress:构建高效、灵活、可扩展的开源发布平台
react.js·开源·reactpress
IT规划师3 小时前
开源 - Ideal库 - 常用枚举扩展方法(一)
开源·c#·.net core·ideal库·枚举转换
内核程序员kevin3 小时前
在Linux环境下使用Docker打包和发布.NET程序并配合MySQL部署
linux·mysql·docker·.net
kayotin4 小时前
Wordpress博客配置2024
linux·mysql·docker
OpenI启智社区4 小时前
共筑开源技术新篇章 | 2024 CCF中国开源大会盛大开幕
人工智能·开源·ccf中国开源大会·大湾区