MS ADと通信するspringboot APIのp99スパイク

MS ADと通信するspringboot APIのp99スパイク

この質問がunix.stackechange/stackoverflow/devops.stackexchangeに属しているかどうかはわかりません。

Unix/Linux関連かもしれないと思ってここで開きました。

Active DirectoryクエリをREST呼び出しでラップするWSO2 Apimanagerの背後にあるUbuntuのdockerコンテナで実行されるカスタムjava / springboot APIがあります。

リクエストの約1%が実際に非常に遅いことがわかります(〜130秒または〜260秒は遅いリクエストです)。私たちが見ることができる1つは、要求が遅い場合は毎回約130秒または約260秒かかります。この場合、ログステートメントは次のようになります。

2021-05-11 14:56:55.114 5b86b59d-d4bf-447b-96fc-9256af8b6113;activemq-loginmodule;  INFO 8 --- [nio-8080-exec-2] at.<redacted>.commons.service.LoggingFilter  : method=GET, uri="/aduser/<ad-user>/roles?filters=api-*%2Cmq-*", response_status=200, remote_address=10.0.0.11, response_time_ms=130141, request_body="[empty]", header_x_forwarded_host="wso2-apimanager.domain.com", header_x_forwarded_proto="https", header_x_forwarded_port="443", header_x_forwarded_for="10.10.0.20", header_x_<redacted>_requestid="5b86b59d-d4bf-447b-96fc-9256af8b6113;activemq-loginmodule;", header_accept="application/json", header_host="ad-api.domain.com:8080", header_connection="Keep-Alive", header_user_agent="Synapse-PT-HttpComponents-NIO", cookies=[empty], response_body="[empty]"

Spring Boot APIと通信しているドメインコントローラでLDAPクエリの遅いクエリロギングを有効にし、Active Directoryがクエリにすばやく応答することを確認しました(最も遅いクエリは約2〜3秒です)。

次に、APIを使用してUbuntuホストでtcpdumpを使用してさらに深く掘り下げ、次のことを見つけました。

ADドメインコントローラ:10.xx.xx.79

springboot APIをホストするLinuxサーバー:10.xx.xx.97 遅いAPI呼び出し

高速API呼び出し

どういうわけか、Spring Boot APIまたはspringboot API自体をホストするLinuxシステムのように見えます。まれに、バインド解除要求は広告LDAPに送信されないため、サーバーのバインド解除に2〜4分かかるまでAPI呼び出しは中断されます。

本当に奇妙なことは、このようなことが7日間発生し、springboot APIが3ヶ月以降に変更されていなかったため、このようなことが発生し始めたときにAPIに関しては何も変更しなかったことです。

なぜこれが起こるのですか?なぜこれが起こるのか、どうすればわかりますか?どうすればもっと深く掘り下げることができますか?

関連情報