ssh - 通过 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 固有的,然后无法改进?
解决方案
tl; dr 不太可能您可以自己提高性能。
你好!我负责基于 IntelliJ 的 IDE 中的 SSH 子系统。从 Linux 切换到 Windows 后没有任何变化的原因是我们的 SSH 客户端使用的是用 Java 编写的SSHJ库。坦率地说,在这篇文章之前,我只被告知过一次通过 SSH 通道传输数据缓慢,所以我没有过多关注这个问题。
尽管如此,我测量了我们隧道的性能并发现我们的 SSH 隧道可能非常慢,根据设置最多可达 12 倍。所以我在我们的跟踪器中创建了一个问题:IDEA-256821。如果您能在问题中描述您的设置,我将不胜感激:ping 往返时间,如果您使用任何 VPN 或类似的东西,您的数据库发送到 DataGrip 的数据量等。
推荐阅读
- c# - 有没有办法找到哪些任务在同一个 DbContext 上运行导致错误?
- linux - 对目录中的每个文件运行程序
- excel - 根据excel中的点和机会生成随机数
- python - tkinter 窗口和 cx_Freeze 的小部件大小变化
- python - Django,引用带有双下划线的对象
- css - CSS偏移路径反向移动
- java - 关于android studio(数据库sql)的问题
- java - 创建一个矩形与给定线的所有交点的列表
- c++ - 使用 CMake 添加 c++ 编译器标志
- javascript - Click on interactive chart.js bar chart and get value for labels and groups in JS