併發下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
相關文章
相關標籤/搜索