我在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