Avatar ·

Worauf man eine hochbelastete Website (Python, MySQL) bereitstellt?

📁 Python, Frage, Beliebte Bibliotheken und Frameworks: Django, Arbeit

Es gibt eine funktionierende Website, die in Python (Django) geschrieben ist, und die Datenbank ist MySQL.
Da die Entwickler sich nicht sehr bemüht haben, optimierten Code zu schreiben, ist die Website sehr schwer geworden. Und bei einer Besucherzahl von mehreren Zehntausend pro Tag kommt der Server in Spitzenzeiten mit der Last nicht zurecht und wirft diejenigen raus, die er nicht bedienen konnte.
Hier ist das System des physischen Servers:
1. 2 Kerne mit je 1,8 GHz
2. RAM 2 GB

Hier ist, worauf der Server derzeit bereitgestellt ist:
mysql + nginx + fastcgi

Also die Frage: Ich würde gerne die Meinung von erfahrenen, routinierten oder einfach wissenden Leuten hören, worauf man diese Website noch bereitstellen kann, damit sie maximal schnell und ressourcenschonend ist? Oder ist dieses Setup das schnellste? Vielleicht hat jemand einen Performance-Vergleich gemacht.
Und auch die Möglichkeit

Avatar ·

Im Allgemeinen verstößt dies gegen die Logik von Django. Dort wird vorgeschlagen, das Request-Objekt manuell mitzuschleppen und ja, Client.objects.filter(user=request.user) zu machen. Wenn dies oft gemacht wird, kann man es ja auch in eine Funktion auslagern:

# models.py...def own_clients(request):    retu Client.objects.filter(user=request.user)...

Und dementsprechend verwenden:

# views.pyfrom .models import ..., own_clients...    ... = own_clients(request).all()

Anmelden um eine Antwort zu hinterlassen

Blogs