最近项目出现一个问题,在使用多线程调用开源ch.ethz.ssh2.Connection执行shell任务时有的任务没有执行,导致没有获取数据。
后来经过定位发现线程池同时间最大运行数设置的是15,而liunx默认是10,就导致了一部分任务的丢失。(现在记录下,供出现同样此问题的童鞋们一个参考)
解决:java里面线程池同时间执行的最大线程数,不能够大于liunx链接ssh最大数
使用root用户登录java工程安装的liunx机器
vi /etc/ssh/sshd_config
默认是#MaxStartups 10
可以改成 MaxStartups 40
改完后记得重启
service sshd restart