通过 DataGrip 上的 ssh 隧道更快地连接

Posted

技术标签:

【中文标题】通过 DataGrip 上的 ssh 隧道更快地连接【英文标题】:Faster connection throught ssh tunnel on DataGrip 【发布时间】:2020-12-01 09:36:00 【问题描述】:

我在日常使用中使用 DataGrip 来访问大多数时间只能通过 SSH 隧道访问的数据库。

DataGrip 允许直接在其配置中创建 SSH 隧道,这非常有用,但不幸的是它在性能方面也确实令人失望。

我会延迟大约 5 秒才能将每个请求的数据显示在屏幕上。我有良好的网络、简单的表格和良好的计算机。问题在于 DataGrip 创建和/或使用 SSH 隧道的方式。

如果我手动创建隧道并将其指向 DataGrip,那么我会在不到半秒的时间内获得非常出色的性能来获取我的数据。 特别是如果我创建一个无压缩隧道: ssh -T -o Compression=no -x -L8123:ip:8123 user@ip

最后一点,几个月前我在 Linux 上遇到了同样的问题,改用 Windows 并没有改变 DataGrip 的行为。

我一开始以为每次执行请求都会创建隧道,但是使用netstat可以看到隧道:

TCP someip:53248 somedistantmachine:ssh ESTABLISHED

我想知道你们是否找到了一种方法来更改 DataGrip 上的 SSH 隧道设置以通过内置解决方案获得更好的性能,或者它是否是 DataGrip 固有的,然后无法改进?

【问题讨论】:

【参考方案1】:

tl;dr 您不可能自己提高性能。

嗨!我负责基于 IntelliJ 的 IDE 中的 SSH 子系统。从 Linux 切换到 Windows 后没有任何变化的原因是我们的 SSH 客户端使用了用 Java 编写的 SSHJ 库。坦率地说,在这篇文章之前,我只被告知过一次通过 SSH 通道传输数据缓慢的问题,所以我没有过多关注这个问题。

尽管如此,我测量了我们的隧道的性能,发现我们的 SSH 隧道可能非常慢,根据设置最多可达 12 倍。所以我在我们的跟踪器中创建了一个问题:IDEA-256821。如果您能在问题中描述您的设置,我将不胜感激:ping 往返时间,如果您使用任何 *** 或类似的东西,您的数据库发送到 DataGrip 的数据量等。

【讨论】:

感谢您考虑我的问题!我会完成这张票 ;)

以上是关于通过 DataGrip 上的 ssh 隧道更快地连接的主要内容,如果未能解决你的问题,请参考以下文章

eclipse RSE 可以连接到本地端口(ssh 隧道)吗?

通过 SSH 隧道访问 SQL Server

scp 通过 ssh 隧道打开

SSH 隧道到 EKS 上的 FushionAuth

通过 SSH 隧道访问端点

通过 ssh 隧道的 ftp [关闭]