мы перешли с сервера openldap в Linux на DirX в Windows 2008. Сервер LDAP и обычный поисковый запрос ведут себя так, как ожидалось. Однако с некоторыми приложениями (веб-приложения, развернутые weblogic) возникают проблемы с производительностью.
Мы проследили сетевую активность и обнаружили, что, когда клиент отправляет операцию «отказаться», сервер ldap отправляет и ACK с RTT равным 0,1–0,2 с.
Мы не уверены на 100%, но думаем, что именно отсюда и падает производительность. взаимодействие, которое мы рассмотрели, имело 270 отказов, а 179 ACKS имели RTT> 0,2 с.
Не будучи знаком с TCP, у меня возникают следующие вопросы:
все другие взаимодействия говорят, что searchrequest / searchresponse имеет подтверждение в пакете полезной нагрузки. это «задержка подтверждения»? они занимают всего около 0,01 с, включая полезную нагрузку и предположительно вычисления. Так почему же отдельные ACKS отправляются на отказ? или задать такой вопрос: когда отправляются отдельные подтверждения, а не комбинированные подтверждения + данные?
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)
Спасибо,
Майкл