Open Closed

Slow data fetch #806


User avatar
0
Esben_Dalgaard created

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v3.3.0
  • UI type: Angular
  • DB provider: EF Core(MySql)
  • Tiered (MVC) or Identity Server Seperated (Angular): no

Hi, we are making an Administration app for our products, and we have some general issues, that we'd like your inputs for: 1: Our logout method has some weird issues. 2: Our data fetch is excruciatingly slow, taking 5-9 seconds to get 20 rows of data, and impossibly long to load permission tables.

Login: The logout process goes through these:

and then ends at the login screen:

However, more often than not, it takes two attempts to log out, and otherwise the browser just returns to the dasboard.

2: Our service just runs painfully slow, when loading in data. We have a large system, with 70+ entities, and many of our api calls have been modified with Organizational security checks and complex return objects, but the service is still a lot slower than expected. The permission call itself takes upwards of 30 seconds, if ever it goes through.

Do you have any suggestions on how we can effectivise our system? We are running it bothe locally, but the problem persists on deployment to Azure Web services. (Both frontend, backend and Db)


10 Answer(s)
  • User Avatar
    0
    gterdem created
    Senior .NET Developer

    Hello @Esben_Dalgaard,

    ... The permission call itself takes upwards of 30 seconds, if ever it goes through.

    Is it same for both local and azure? Or it only happens in production?

    Your first question seems related with second one; permissions don't seem to be loaded so it throws forbidden.

    Can you confirm that have non-tiered angular application (no seperate identityserver)?

  • User Avatar
    0
    Esben_Dalgaard created

    We have tested it with both local frontend, backend and Db and deployed local, backend and Db, an a mixture of these. There is no seperate identity server, it all runs on two web services, and one azure MySql Db. The identity and tenant module is in the same Db as all of our entities.

    We are 2 weeks from having to use this is a customer oriented version, so we would really appreciate any help.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi @Esben_Dalgaard

    Can you share some logs during app get slow?

    Does your application use redis. Is its configuration correct?

  • User Avatar
    0
    Esben_Dalgaard created

    Here's our backend log when one of our calls are made: https://docs.google.com/document/d/1-hbP01lTpqIP3YVbyqlS7-C88OLmIwdMMzKYyGj-CQU/edit?usp=sharing

    It's a call that fetches organizationUnits, but filtered for what organizations you are part of and all sub-orgs.

    We do not use redis. What is it, and how could we?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Here's our backend log when one of our calls are made:

    Can you share a full log of a slow request? From the beginning to the end.

    eg

    [INF] Request starting HTTP/2 GET https://localhost:44340/api/abp/application-configuration - -
    /// ....
    /// ....
    INF] Request finished HTTP/2 GET https://localhost:44340/api/abp/application-configuration - - - 200 - application/json;+charset=utf-8 932.6348ms
    

    We do not use redis. What is it, and how could we?

    You can check your all project's appsettings.json files to see if it contains below config.

  • User Avatar
    0
    Esben_Dalgaard created

    We added the abp redis package, and wrote this into our appsettings.json, and it has had no discernable effect on our backend.

    Changed the log in the docs file to specifically that request

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Can I check your source code remotely? You can send me an email, then I will share the Zoom link. liming.ma@volosoft.com

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi Esben_Dalgaard

    If your application is a monolithic application and no plan to use load balanced. You can disable redis, memory cache will be used.

    You can create a new project using the same abp & ef core provider and check the loading speed of the built-in module page. Such as user, tenant, role, audit log and other pages, This represents the basic speed of the application on your computer.

    You need to check your code, they are slow, there are a lot of sql queries in the log, this is not normal, you can single-step debug the application to find the problem code.

    Ways to solve the slow permission modal:

    1. create a folder AbpPermissionManagement at Pages folder.
    2. Copy AbpIdNameTagHelper.cs and PermissionManagementModal.cshtml to AbpPermissionManagement. I already send it to you.
    3. re-run the app to check the speed of permission modal

  • User Avatar
    0
    Esben_Dalgaard created

    I'm pretty sure our backend is mostly slowed by the many repository calls, which is just something we'll have to effectivise, but I haven't had luck implementing the Permissions solution you have.

    We're running 3.3.0 EFCore, mysql, and I see no such folder as you describe. When adding them myself, I get:

    Saying that the PermissionsManagementModal is missing, and that the .web part of Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement also is missing.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi @Esben_Dalgaard

    I see no such folder as you describe.

    You need to add it to the application that depens on the AbpPermissionManagementWebModule

Made with ❤️ on ABP v9.1.0-preview. Updated on December 13, 2024, 06:09