我在日常使用中使用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固有的,然后不可能改进的?
发布于 2020-12-03 22:10:10
tl;dr你不太可能自己提高性能。
嗨!我负责基于IntelliJ的IDE中的SSH子系统。从Linux切换到Windows后没有任何变化的原因是因为我们的SSH客户端使用的是用Java编写的SSHJ库。坦率地说,在这篇文章之前,我只被告知过一次SSH通道上的数据传输速度很慢,所以我并没有太多地关注这个问题。
尽管如此,我测量了我们的隧道的性能,并发现我们的SSH隧道可能真的很慢,根据设置的不同,最多会慢12倍。因此,我在我们的跟踪器中创建了一个问题:IDEA-256821。如果你能在这个问题中描述你的设置,我将不胜感激: ping往返时间,如果你使用任何虚拟专用网络或类似的东西,你的数据库发送到DataGrip的数据量,等等。
https://stackoverflow.com/questions/65087974
复制相似问题