故障处理: SFTP 报错 com.jcraft.jsch.JSchException: channel is not opened

亦凉 2023-01-05 12:09 616阅读 0赞

报错的部分内容

  1. 2020-12-30 04:00:11,704 com.han.base.file.ftp.FtpUtil.listFiles(FtpUtil.java:230) -- ERROR -- ??????????????????host:192.168.0.1,???:test1,??:22??????????/download/?????
  2. com.jcraft.jsch.JSchException: channel is not opened.
  3. at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765)
  4. at com.jcraft.jsch.Channel.connect(Channel.java:151)
  5. at com.han.base.util.SessionChannelUtil.channelSftpConnect(SessionChannelUtil.java:35)
  6. at com.han.base.file.ftp.FtpUtil.listFiles(FtpUtil.java:218)
  7. at com.han.base.file.FileProcessing.listFiles(FileProcessing.java:330)
  8. at com.han.timer.busi.impl.ReconcileBusiServiceImpl.checkFileExsit(ReconcileBusiServiceImpl.java:115)
  9. at sun.reflect.GeneratedMethodAccessor609.invoke(Unknown Source)
  10. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  11. at java.lang.reflect.Method.invoke(Method.java:497)
  12. ...

初步分析这个报错的原因

  1. - channel数量超过了sshd服务中规定的maxSession # maxSession 的解释 https://blog.csdn.net/u014686399/article/details/84778292
  2. - 超时时间过短,导致的超时
  3. - sshd端资源短缺导致连接超时
  4. - 客户端端资源短缺导致连接超时

上面的原因是我能想到的,可能还有其他的原因,请大家帮忙给补充一下

  • 下面使我们服务的架构
    在这里插入图片描述
    通过监控发现glusterfs client 占用的cpu的使用率会出现100%的情况,所以初步定位原因是sshd 服务端资源短缺导致的原因。
    进一步分析,发现cpu大部分是被文件流转程序占用。

通过改进架构,修正问题

在这里插入图片描述

  1. 1)让占用cpu比较大的程序独占一个glusterfs client,避免影响sshd服务,还有另一个好处就是我们可以只针对这个client做调优或者重启。
  2. 2)两个clientlinux服务器上的展现就是两个不同的挂载点

发表评论

表情:
评论列表 (有 0 条评论,616人围观)

还没有评论,来说两句吧...

相关阅读