【发布时间】:2020-10-03 07:36:33
【问题描述】:
通过 OpenAsync 和 Rocket 的 ADO.NET 提供程序打开与 Unidata 服务器的连接时,我一直看到 3 秒以上的延迟。
我可以做些什么来诊断这种延迟?
【问题讨论】:
通过 OpenAsync 和 Rocket 的 ADO.NET 提供程序打开与 Unidata 服务器的连接时,我一直看到 3 秒以上的延迟。
我可以做些什么来诊断这种延迟?
【问题讨论】:
我一直在使用 jdbc 和 odbc 连接,三秒钟是不对的。
您可以先将事物分解为客户端、网络、服务器。
在客户端上,如果您使用 IP 地址与主机名,是否相同?如果不同,则 DNS 延迟。您是否有任何可能会延迟连接的防病毒软件或其他软件?你能把它关掉,或者在新配置的机器上做一个测试吗?
对于网络,你能在毫秒内 ping unidata 服务器吗?有防火墙吗?您可以安装wireshark并按目的地过滤数据包吗? ssh 时有延迟吗?服务器是否配置了 LDAP/AD 或本地身份验证 - 可能正在连接到另一台服务器进行身份验证?
在服务器上,您可以打开 uniobjects 日志记录,然后重新启动 unirpcd。您的 LOGIN/UOLOGIN 中是否有任何东西挂断了远程连接?
$cat $UDTHOME/serverdebug
udcs 9 /tmp/udcs.log
【讨论】:
6/16/2020 3:44:36 PM:ThreadID: ThreadID: 3 Thread Name : lHostToNetworkOrder:426397849 6/16/2020 3:44:39 PM:ThreadID: ThreadID: 3 Thread Name : lReturnCode in UciConnection::U2Login(): 0
session.connect(host, user, pass, acct);,所以可能不是 100% 可比的,但是您在连接中指定了一个帐户(数据库),您可以尝试登录到 $UDTHOME/demo 以进行规则在您的应用程序逻辑中找出任何东西?如果这需要 3 秒,那么它会排除您帐户中的任何内容。