Linux 服务器 ssh 登录特别慢

1 篇文章 0 订阅
1 篇文章 0 订阅

被这个问题困扰了很久,通过查阅大量网络资料找到了解决方法。

网上关于这个问题的博客文章一大堆,但是都是千篇一律、互相拷贝,关于配置UseDNS 或者GSSAPIAuthentication的,解决不了问题,浪费了我大量时间。

不能说那些方法没用,可能不适用我的情况,下面记录一下我的情况,为遇到相同情况的人提供一种新的解决方法。

场景

一台Linux文件服务器(具体是Redhat 7.2),客户端脚本通过 ssh 频繁远程执行 ll 命令检查是否有新文件,并通过 scp 将文件拷贝出来。

现象

通过ssh访问文件服务器特别慢,通过ssh -v显示登录调试信息发现卡在

debug1: Entering interactive session.
大概20多秒。

文件服务器运行时间久了会出现磁盘满,检查发现/var/spool/abrt/ 目录下存在大量ccpp*文件夹,里面都是崩溃日志。

ccpp*文件夹里有一个reason文件,cat内容是 systemd-logind killed by SIGABRT。

排查

登录文件服务器后,首先通过top,检查发现systemd-logind cpu 利用率达到90%-100%

关键

ls -ld /run/systemd/system/session-*.scope*
检查发现/run/systemd/system/目录下大量session-*.scope*文件

systemctl |grep "abandoned" |grep -e "-[[:digit:]]" |sed "s/\.scope.*/.scope/"
检查发现大量session-*.scope.

原因

这应该是系统的一个缺陷,跟systemd有关,systemd-logind主要功能是为每一个登陆session创建一个systemd角度的cgroup管理对象,那些abandoned session应该就是没有及时释放的。

解决

手动清理一下

systemctl |grep "abandoned" |grep -e "-[[:digit:]]" |sed "s/\.scope.*/.scope/" |xargs systemctl stop
可以将这条命令加入crontab或者脚本中定时运行

小结

可能我通过脚本频繁ssh和scp的方法不太好,引起了这个问题,但是总算解决了,

最终解决方法通过 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=793814 找到 systemd 的 github https://github.com/systemd/systemd/issues/1961

里面有详细问题描述以及解决方法以及讨论,本文的解决方法由part-timeDev 提出

网络上关于systemd争议挺多的,https://www.zhihu.com/question/25873473

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值