故障处理: SFTP 报错 com.jcraft.jsch.JSchException: channel is not opened
报错的部分内容
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/?????
com.jcraft.jsch.JSchException: channel is not opened.
at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765)
at com.jcraft.jsch.Channel.connect(Channel.java:151)
at com.han.base.util.SessionChannelUtil.channelSftpConnect(SessionChannelUtil.java:35)
at com.han.base.file.ftp.FtpUtil.listFiles(FtpUtil.java:218)
at com.han.base.file.FileProcessing.listFiles(FileProcessing.java:330)
at com.han.timer.busi.impl.ReconcileBusiServiceImpl.checkFileExsit(ReconcileBusiServiceImpl.java:115)
at sun.reflect.GeneratedMethodAccessor609.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
...
初步分析这个报错的原因
- channel数量超过了sshd服务中规定的maxSession # maxSession 的解释 https://blog.csdn.net/u014686399/article/details/84778292
- 超时时间过短,导致的超时
- sshd端资源短缺导致连接超时
- 客户端端资源短缺导致连接超时
上面的原因是我能想到的,可能还有其他的原因,请大家帮忙给补充一下
- 下面使我们服务的架构
通过监控发现glusterfs client 占用的cpu的使用率会出现100%的情况,所以初步定位原因是sshd 服务端资源短缺导致的原因。
进一步分析,发现cpu大部分是被文件流转程序占用。
通过改进架构,修正问题
(1)让占用cpu比较大的程序独占一个glusterfs client,避免影响sshd服务,还有另一个好处就是我们可以只针对这个client做调优或者重启。
(2)两个client在linux服务器上的展现就是两个不同的挂载点
还没有评论,来说两句吧...