并发下sftp链接报错——com.jcraft.jsch.JSchException: connection is closed by foreign host

当对单接口极限测试时,随着并发量上升,接口稳定性出现不稳定的状况,排查后台日志,发现报错在该接口调用sftp上传时出现问题(确切的是在初始化链接时失败)并发

缘由:系统SSH终端链接数配置太小,查看虚拟机该参数(该参数在/etc/ssh/sshd_config中配置,为MaxStartups),MaxStartups 默认设置是 10:30:100,意思是从第10个链接开始以30%的几率(递增)拒绝新链接,直到链接数达到100为止。ssh

解决方法:测试

  • 修改/etc/ssh/sshd_config中的MaxStartups,将其改成MaxStartups 1000:30:1200;修改/etc/ssh/sshd_config中的MaxSessions,将其修改成1000
  • 重启SSH服务/etc/init.d/ssh restart

另外,系统的默认链接时间120秒,若是远程终端链接数过多,则会出现超时链接,解决办法以下:rest

  • 修改/etc/ssh/sshd_config中LoginGraceTime 120,将其改成LoginGraceTime 0,其中0表示不限制链接时间。
  • 重启SSH服务/etc/init.d/ssh restart
相关文章
相关标签/搜索