JSCH会大量使用服务器内存吗?会

java实现一个需求用到了jsch,发现服务器内存会被占满。 写了个50进程的jsch-sftp测试连接 put一个文件

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(50);
for (int j = 0; j < 50; j++) {
	fixedThreadPool.execute(new Thread("Thread1") {
		[@Override](https://my.oschina.net/u/1162528)
		public void run() {
			while (true){
				System.out.println(Thread.currentThread().getName());
				dosftptest();
				try {
					Thread.sleep(10*1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	});
}

          total        used        free      shared  buff/cache   available

Mem: 1839 137 828 0 873 1523 Swap: 0 0 0

          total        used        free      shared  buff/cache   available

Mem: 1839 748 123 9 966 829 Swap: 0 0 0

          total        used        free      shared  buff/cache   available

Mem: 1839 1052 79 14 707 495 Swap: 0 0 0

启动后内存一直下降,最后稳定到70-80之间差不多。 关闭java程序后,内存恢复。 total used free shared buff/cache available Mem: 1839 106 1214 0 518 1565 Swap: 0 0 0

所以java通过jsch sftp,是会占用服务器内存的,所以连接使用后必须进行关闭!

猜你喜欢

转载自my.oschina.net/u/3005325/blog/2088264