我在rails上使用ruby並使用net-ssh gem將ssh放入另一臺機器,運行一些腳本,將腳本輸出回到rails中,然後在我的站點上提供該輸出。這將需要發生很多,實際上這是我網站的核心。加速紅寶石ssh握手
腳本本身花費的時間很少,但響應時間範圍在瞬間到15秒之間。 SSH握手需要可變時間。
這裏是我的Ruby代碼做SSH:
res = []
Net::SSH.start(host, user, :password => pass) do |ssh|
# execute container
ssh.exec("run script") do |ch, stream, data|
res.push(data)
end
end
res = res.join("")
render text: res
任何想法如何使這個超級快?
我想知道是否應該保持ssh連接在任何時候都打開,並且每次需要運行腳本時都會添加新線程(這將會很多)。我已經看到人們談論ControlMaster,但不知道如何做到這一點。
從應用服務器到ssh服務器使用命令行'ssh'時,你是否會得到相同的偶爾減速?它們之間的網絡可靠嗎? – Matt