我们已经从Linux上的openldap服务器迁移到Windows 2008上的DirX。ldap服务器和正常的serch请求按预期运行。 但是,有些应用程序(weblogic部署的webapps)会导致性能问题。
我们追踪了networking活动,发现当客户端发送“放弃”操作时,ldap服务器发送并确认具有0.1-0.2s的RTT。
我们不是100%肯定的,但我们认为这是performance冲击的来源。 我们看到的交互有270个放弃,179个ACKS的RTT> 0.2s。
不是很熟悉TCP,我有以下问题:
所有其他交互说searchrequest / searchresponse在有效载荷数据包有ack。 这是“延迟了”? 他们只需要约0.01秒,这包括有效载荷和可能的计算。 那么为什么单个的ACKS被放弃呢? 或者像这样提出问题:什么时候发送个人ack而不是合并ack +数据?
657 9.2943 ldapserver ldapclient LDAP 170 searchResDone(57) 658 9.2948 ldapclient ldapserver TCP 66 18367 > 389 [ACK] Seq=10007 Ack=19799 Len=0 659 9.2954 ldapclient ldapserver LDAP 1009 searchRequest(134) 660 9.2972 ldapserver ldapclient LDAP 630 searchResEntry(134) 661 9.2973 ldapserver ldapclient LDAP 172 searchResDone(134) Sequence number:45106, len=106 662 9.2978 ldapclient ldapserver LDAP 76 abandonRequest(134) Sequence number: 46818, len=10 663 9.3378 ldapclient ldapserver TCP 66 18368 > 389 [ACK] Seq=46828 Ack=45212 Len=0 (The RTT to ACK the segment was: 0.040492000 seconds) 664 9.5062 ldapserver ldapclient TCP 66 389 > 18368 [ACK] Seq=45212 Ack=46828 Len=0 (The RTT to ACK the segment was: 0.208397000 seconds) 665 9.5068 ldapclient ldapserver LDAP 183 searchRequest(136) 666 9.5229 ldapserver ldapclient LDAP 163 searchResEntry(136) 667 9.5229 ldapserver ldapclient LDAP 170 searchResDone(136)
谢谢,
迈克尔