我们有一个生产系统,该系统是发布到的ASP.NET Web API(经典的,不是.NET Core)应用程序Azure。数据存储是Azure SQL Database,我们Entity Framework用来访问数据。API具有中等负载,每秒10-60个请求,upper_90延迟为100-200毫秒,这是我们的情况。不久前,我们注意到大约每20-30分钟我们的服务就会停顿,并且延迟会跳到大约5-10秒。所有请求开始缓慢运行约一分钟,然后系统自行恢复。同时没有丢弃任何请求,它们都将花费更长的时间来执行。短时间(通常为1分钟)。
我们开始在HTTP请求遥测(Azure)中看到以下图片:
我们还可以看到与Azure SQL数据库指标的相关性,例如DTU(删除)和连接(增加):
我们已经分析了服务器,没有发现与主机(我们只有一个主机)的CPU /内存使用有任何关联,它稳定在20-30%的CPU使用率和50%的内存使用率。
我们还有另一种遥测数据源,它显示出相同的行为。我们的遥测技术可测量API延迟和数据库指标,例如活动连接数和池连接数(ADO.NET连接池):
有趣的是,每个系统停顿都伴随着池连接数量的增加。我们的测试表明,连接池越多,您花费在等待来自该池的新连接上以执行下一个数据库操作的时间就越长。我们分析了一些建议,但无法证明或反驳其中的任何一项:
到目前为止,我们正在尝试确定这种行为的可能原因。不幸的是,由于缺少遥测技术,我们无法确定导致其变化的原因,因此,解决此问题的唯一方法是正确诊断它。而且,当然,我们只能在永久负载下(即使负载不高,例如每秒请求10个负载)在生产中进行复制。
有什么可能导致这种现象,正确的诊断和排除故障的方法是什么?
entity-framework connection-pooling azure asp.net-web-api azure-sql-database
I have a Xamarin.Android app which I recently switched to use R8 code shrinker. Unfortunately, my app is crashing on startup with the following error:
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn’t find class “com.google.firebase.provider.FirebaseInitProvider” on path: DexPathList[[zip file “/data/app/app-bundle-1/base.apk”],nativeLibraryDirectories=[/data/app/app-bundle-1/lib/arm64, /data/app/app-bundle-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at android.app.ActivityThread.installProvider(ActivityThread.java:6105)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5572)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5511)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1611)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6375)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Run Code Online (Sandbox Code Playgroud)
I found this article, it's more related to MultiDex and native android …
android xamarin.android android-multidex android-d8 android-r8
我使用Xamarin.Firebase.iOS.Auth和 Apple AuthenticationServicesApple Sign In让用户使用Firebase登录并稍后进行身份验证。我有一个Xamarin.iOS应用程序,该Apple Sign In部分已完成,没有任何问题,我能够激活Apple Sign In并从 ASAuthorizationAppleIdCredential 接收有效的身份令牌。问题出在第二步中,当我尝试使用该令牌通过 Firebase 进行身份验证时:
var idTokenString = "<my_valid_identity_token_here>";
var credentials = OAuthProvider.GetCredential("apple.com", idTokenString);
var authResult = await Auth.DefaultInstance.SignInWithCredentialAsync(credentials);
Run Code Online (Sandbox Code Playgroud)
我收到了以下详细信息的异常:
(Inner Exception #0) Foundation.NSErrorException: Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and inspect the error details for more information." UserInfo={FIRAuthErrorUserInfoNameKey=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information., NSUnderlyingError=0x600002c89260 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={ …Run Code Online (Sandbox Code Playgroud)