問題描述
本地使用jsch執行shell命令基本沒有延遲,但是在虛擬機上出現了部分連接很慢一般要十幾秒有點連接甚至不可用的情況。
結構
部分接口直接獲取jsch連接執行shell命令,另一部分對連接進行池化管理,從池中獲取并建立jsch連接。
過程
直接調用兩種不同的接口發現直接獲取jsch連接方式,方法執行很慢普遍十秒往上。調用池化建立jsch連接方式,方法不能執行會直接報錯,說明池化方式失效了。
后來發現可能是SSH的DNS解析導致連接建立變慢,甚至池化連接無法使用。
關閉SSH的DNS解析后發現連接池變得可用,初次使用仍會很慢本地連接顯示慢,第二次后就會在一秒內執行完成。
解決方案
在操作中,我們都會用SSH協議來遠程控制虛擬機本地連接顯示慢,但是在輸入用戶名時候,會有一段時間的卡頓,此時正在進行SSH協議的DNS解析,我們為了快速的連接到虛擬機上,就要關閉這個解析過程,如下是具體配置:
1. 修改sshd配置:vim /etc/ssh/
[root@work1 ~]# vim /etc/ssh/sshd_config

...
# 關閉SSH的DNS解析
UseDNS no

...
1. 重啟sshd服務: sshd
調用池化建立jsch連接并執行shell命令