首页 > 解决方案 > 通过 DataGrip 上的 ssh 隧道更快地连接

问题描述

我在日常使用中使用 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 固有的,然后无法改进?

标签: sshdatagrip

解决方案


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

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

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


推荐阅读