1.情况描述
使用vsftp进行文件传输,发现sshd进程cpu占用异常,并且su和ssh登录相比正常机器会慢2秒左右。
图1
2.问题分析
通过strace跟踪su和sshd进程,有大量ssh:notty信息。
图2
配置ssh绕过pam模块认证后,ssh连接速度恢复正常。跟踪strace日志,ssh:notty的信息来自/var/log/btmp。
图3
btmp文件是系统中用于记录登录失败信息的文件。每当有用户尝试登录但失败时,系统都会在btmp文件中记录相关信息,包括登录尝试的用户名、登录终端、尝试时间等。
图4
在pam源码中,每次登录都会从btmp中获取登录失败记录,当有新的登录失败记录时,会在下次登录成功后进行提醒。
3.问题总结
现场异常环境中btmp文件1.2G,造成pam在读取btmp过程中耗时过长,从而导致高并发时sshd出现cpu资源占用异常,su切换和ssh登录慢的情况。