Why the max number of concurrent users decrease?

At first I built a django project independently and the max number of concurrent users for one API is almost 50. The average RPS is 300 Hit/s.
Due to the business requirements, I need to add my project into another project as a new App. I just add a new database in settings.py and add a new file database_router.py to control the database use. But I found the max number of concurrent users is only 30 and the average RPS is 180 Hit/s now. Why the max number of concurrent users decreased?Because of database router?
Here is the database_router.py:

from django.conf import settings
 
DATABASE_MAPPING = settings.DATABASE_APPS_MAPPING
 
 
class DatabaseAppsRouter(object):
    """
    A router to control all database operations on models for different
    databases.
 
    In case an app is not set in settings.DATABASE_APPS_MAPPING, the router
    will fallback to the `default` database.
 
    Settings example:
 
    DATABASE_APPS_MAPPING = {'app1': 'db1', 'app2': 'db2'}
    """
 
    def db_for_read(self, model, **hints):
        """"Point all read operations to the specific database."""
        if model._meta.app_label in DATABASE_MAPPING:
            return DATABASE_MAPPING[model._meta.app_label]
        return None
 
    def db_for_write(self, model, **hints):
        """Point all write operations to the specific database."""
        if model._meta.app_label in DATABASE_MAPPING:
            return DATABASE_MAPPING[model._meta.app_label]
        return None
 
    def allow_relation(self, obj1, obj2, **hints):
        """Allow any relation between apps that use the same database."""
        db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label)
        db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label)
        if db_obj1 and db_obj2:
            if db_obj1 == db_obj2:
                return True
            else:
                return False
        return None
 
    def allow_syncdb(self, db, model):
        """Make sure that apps only appear in the related database."""
 
        if db in DATABASE_MAPPING.values():
            return DATABASE_MAPPING.get(model._meta.app_label) == db
        elif model._meta.app_label in DATABASE_MAPPING:
            return False
        return None
 
    def allow_migrate(self, db, app_label, model=None, **hints):
        """
        Make sure the auth app only appears in the 'auth_db'
        database.
        """
        if db in DATABASE_MAPPING.values():
            return DATABASE_MAPPING.get(app_label) == db
        elif app_label in DATABASE_MAPPING:
            return False
        return None

Can anyone help me solve this issue? Thanks!!

How many concurrent connections does your new database allow? Is that database being shared with any other applications that may be using connections?

The router itself would not be affecting this. It is executing within the Django layer, before any queries are sent to the database.

I just used the default setting for concurrent connections for old and new project. The database should not be shared with any other applications.
Here is the settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxx',
        'USER': 'xxxx',
        'PASSWORD': 'xxxx',
        'HOST': 'x.xxx.xx.xx',
        'PORT': '3306'
    },
    'forest':{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxx',
        'USER': 'xxxx',
        'PASSWORD': 'xxxx',
        'HOST': 'x.xxx.xx.xx',
        'PORT': '3306'
    }
}
DATABASE_APPS_MAPPING = {
    'app': 'default',
    'my_app':  'forest'
}

only my_app will use database forest. Should I add more settings about database?

This is more likely an issue with the configuration of the database itself, not related to the configuration of your connection to the databases within Django. In other words, you would need to check the number of concurrent connections allowed by MySQL.

The max_connection is 5000 and max_user_connection is 0. I didn’t change the configuration of the database after I merged my project into another project. When I run my project independently the PRS is ok but when I run the new project(which contains my own project) the RPS decreased 30%. The database is the same.