2011-09-25 5 views
7

Jak dostroić Django dla lepszej wydajności? Czy jest jakiś przewodnik? Mam następujące pytania:Wskazówki dotyczące dostrajania wydajności Django?

  • Czy mod_wsgi jest najlepszym rozwiązaniem?
  • Czy jest jakaś pamięć podręczna opcode w PHP?
  • Jak powinienem dostroić Apache?
  • Jak mogę skonfigurować moje modele, więc mam mniej/szybszych zapytań?
  • Czy mogę używać Memcache?
+2

Czy cierpisz na problem z wydajnością? –

Odpowiedz

4

Komentarze do kilku pytania:

Czy mod_wsgi najlepsze rozwiązanie?

Apache/mod_wsgi jest odpowiedni dla większości ludzi, ponieważ nigdy nie będzie wystarczająco dużo ruchu, aby powodować problemy, nawet jeśli Apache nie został poprawnie skonfigurowany. Serwer WWW zwykle nie jest wąskim gardłem.

Czy jest jakaś pamięć podręczna opcode, jak w PHP?

Python buforuje skompilowany kod w pamięci, a procesy zachowują się w żądaniach. W związku z tym nie potrzebujesz osobnego produktu do buforowania kodu, takiego jak PHP, ponieważ jest to domyślnie Python. Musisz tylko upewnić się, że nie korzystasz z mechanizmu hostingu lub konfiguracji, która powodowałaby odrzucanie procesów przy każdym żądaniu lub zbyt często. Nie używaj na przykład CGI.

Jak powinienem dostroić Apache?

Nie wiedząc nic o aplikacji lub systemie, na którym ją hostujesz, nie możesz podać łatwych wskazówek, jak skonfigurować Apache. Dzieje się tak, ponieważ przepustowość, czas trwania żądań, ilość wykorzystanej pamięci, ilość dostępnej pamięci, liczba procesorów i wiele więcej wchodzą w grę. Jeśli jeszcze nie napisałeś swojej aplikacji, to po prostu przeskakujesz tu, ponieważ dopóki nie dowiesz się więcej o obciążeniu aplikacji i produkcji, nie możesz optymalnie dostroić Apache.

Kilka prostych propozycji.

  • Nie hostuj PHP w tym samym Apache.
  • Użyj pracownika Apache MPM.
  • Użyj trybu demona mod_wsgi i trybu osadzonego NOT.

Sam to uratuje cię od wywoływania zbyt wielkiego żalu dla siebie.

Jeśli naprawdę chcesz lepiej dostroić swój pełny stos, tj. Aplikację i serwer WWW, a nie tylko przedwcześnie optymalizować, ponieważ myślisz, że będziesz mieć następny FaceBook, nawet jeśli tak naprawdę nie napisałeś żadnego kodu jednak musisz zacząć szukać narzędzi do monitorowania wydajności, aby sprawdzić, co robi twoja aplikacja. Twoja aplikacja i baza danych będą prawdziwym źródłem twoich problemów, a nie serwera WWW.

Rodzaj narzędzia monitorowania wydajności, o którym mówię, to coś w stylu New Relic. Ale nawet wtedy, jeśli jesteś bardzo wcześnie i nie masz niczego wdrożonego nawet, to samo w sobie byłoby stratą czasu.Innymi słowy, po prostu niech kod działa najpierw, zanim zaczniesz się martwić, jak go optymalnie uruchomić.