Slow Performance Issue with Django Admin in Production Environment

francoleyes
PRO

a year ago

Hello, I need help because the Django admin is very slow when accessing an app. With the same database of less than 8000 records, it takes 8.60 seconds on the server and only 90 ms locally. I tried adding workers on the server, but it doesn't improve. I also tested it from very close to the server (from Miami), so I don't think it's latency. I have the Pro plan.

0 Replies

francoleyes
PRO

a year ago

60937526-0f38-463c-a9c3-319f6b9e53dd


a year ago

where is your database hosted?


francoleyes
PRO

a year ago

I have tested from US West (Oregon, USA) and also from US East (Virginia, USA).


a year ago

okay so the database is on railway?


francoleyes
PRO

a year ago

Yes, it is in railway


a year ago

is your database and django app both in us east?


francoleyes
PRO

a year ago

Yes, both the database and Django app are hosted in the US East


a year ago

is your django app connecting to the database via the private network?


francoleyes
PRO

a year ago

Yes, the Django app is connecting to the database via the private network


a year ago

whats your middleware stack?


francoleyes
PRO

a year ago

My middleware stack configuration in the Django settings file is as follows:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
"whitenoise.middleware.WhiteNoiseMiddleware",
'django.contrib.sessions.middleware.SessionMiddleware',
"corsheaders.middleware.CorsMiddleware",
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
'auditlog.middleware.AuditlogMiddleware',
]


a year ago

looks fine, what is debug set to when on railway?


francoleyes
PRO

a year ago

DEBUG is set to False


a year ago

whats your start command when you run locally, and your start command that railway runs?


francoleyes
PRO

a year ago

local:
python manage.py runserver

railway:
I've tried many production setups, but currently, this is what I'm using "python manage.py migrate && python manage.py collectstatic --noinput && gunicorn -k gevent --workers=8 gym.wsgi"


a year ago

already using gevent, that was what i was going to ask you to try next


francoleyes
PRO

a year ago

any idea what might be going on?


a year ago

at this moment no, but i do know that this would not be a platform issue


a year ago

there is some kind of misconfiguration somewhere


francoleyes
PRO

a year ago

is there any way to debug or trace where it's coming from?


a year ago

you would need to implement some kind of highly verbose logging for that


a year ago

have you tried other worker classes?


francoleyes
PRO

a year ago

yes, I've experimented with different worker classes, but the performance issue persists


a year ago

im stumped, that just leaves process of elimination, remove bits of code until the issue goes away, not the most elegant solution, but it can work


francoleyes
PRO

a year ago

thank you very much for the suggestion and help, I will keep trying


a year ago

please update me if you find anyting!