2012-10-28 4 views
5

postgres 및 apache (wsgi-mod가 데몬이 아닌 직접 있지만)가있는 EC2 Small 인스턴스 (1.7GB RAM)에서 내 앱의 알파 버전을 실행 중입니다.Django 성능/메모리 사용량

성능은 문제가 없지만 더 좋을 수 있습니다. 너무 많은 테스트 사용자가 참여한다면 메모리 사용에 대해서도 걱정이됩니다.

아파치에서 nginx 서버로 전환하는 것이 현명합니까? 어떤 장고 개발자도 그렇게했으며 그 결과가 더 행복합니까? 도중에 다른 팁도 환영합니다.

감사

+0

서버 장애가 발생하지 않아야합니까? – tr4656

+1

전환 전 - 최선의 단계. 성능 및 RAM 사용량은 꿈입니다. 앱은 Gunicorn을 통해 제공됩니다. – Thomas

답변

4

우리는 gunicorn 서버에있는 우리의 장고 응용 프로그램과 함께의 nginx를 사용하고 있습니다. 지금까지는 성능이 상당히 좋았지 만 Apache 설정과 직접적인 비교는하지 않았습니다. 메모리 사용량은 매우 적습니다. nginx는 약 10MB의 메모리와 약 150MB의 gunicorn을 필요로합니다. 물론 이것은 앱마다 다를 수 있습니다.

웹 사이트 및/또는 gunicorn 웹 사이트에서 몇 가지 자습서를 설정하기 만하면됩니다. 비슷한 테스트 케이스를 얻고 munin 같은 모니터링 소프트웨어를 사용하여 시간이 지남에 따라 변경 사항을 확인하십시오.

+0

답변 해 주셔서 감사합니다. 숫자는 매우 흥미 롭습니다. 나는 값 싸고 심지어 더 싼 Micro Ec2 인스턴스 (613 MB)로 갈 수 있을지 궁금하다. 나는 하나의 응용 프로그램과 약간의 돈을 가지고 있습니다.:) 나는 그것에게 탄을주고 기억 상쇄를 얻는 지 볼 수 있었다. 나는 오늘 어떤 조사를했는데, 왜 gunicorn에 대한 대안 인 uWSGI에 대한 당신의 견해가 맞습니까? 또한 munin에 감사드립니다. 매우 편리하게 올 수 있습니다. – Houman

+0

마이크로 인스턴스에는 고정 된 양의 CPU가 할당되지 않습니다. 그러나 현실적인 테스트 세트를 개발하고 확인하십시오. 아마도 충분합니다. 그래도 UWSGI에 대한 개인적인 경험은 없습니다. 죄송합니다. – j0nes

+0

+1 귀하의 조언. 참된. 마이크로 인스턴스는 작은 버스트에서 가장 잘 작동하며, 버스트 내에서 실제로 2 cpus가 할당됩니다. 어쩌면 나는 작은 인스턴스와 함께 있어야합니다. 하나 이상의 CPU가 지속적으로 할당됩니다. 마지막 질문 하나, DB (postgres 또는 mysql)를 같은 인스턴스에 보관 하시겠습니까? 감사합니다 – Houman

1

결과가 서로 다릅니다. 응용 프로그램이 빠른, 비 차단, nginx 작은 메모리 풋 프린트와 잘 수행합니다. 트래픽이 많을수록 편익이 커집니다.

이 상황에서 nginx는 비참하게 실패합니다. 조금 느린 몇 가지 GIS 응용 프로그램이 있습니다. 내 충고는 : 몇 초 동안 차단할 수있는 모든 것에 nginx + wsgi를 사용하지 마십시오.

+1

어드 바이스에 대한 +1 감사 – Houman

2

왜 mod_wsgi의 데몬 모드를 사용하지 않습니까? 임베디드 모드를 사용하고 있다면 아파치 설정 방법을 신중히 생각하지 않는다면 메모리 문제로 스스로를 설정하고있는 것입니다. 아파치 MPM 당신은 어떤을 사용하고 무엇을하고 있습니다 또한 귀하의 질문을 수정

http://lanyrd.com/2012/pycon/spcdg/

및 표시 :

이동의 읽기 있습니다

http://blog.dscpl.com.au/2012/10/why-are-you-using-embedded-mode-of.html

을하고도 내 PyCon가에서 이야기를보고 MPM 설정은 다음과 같습니다.

유사한 구성의 경우 gunicorn 또는 uWSGI와 같은 대안을 사용하는 것과 관련하여 기본 서버가 사용되는 메모리의 양을 결정하는 것이 아니기 때문에 메모리 요구 사항이 크게 달라지지 않습니다. 그 위에 실행중인 특정 Python 웹 응용 프로그램이 될 것입니다. gunicorn이나 uWSGI가 어떻게 든 마술처럼 모든 문제를 해결하고 아파치도 그렇게 할 수 없다는 것은 오해입니다. 파이썬 웹 애플리케이션을 위해 아파치를 적절하게 설정하고 기본값에 의존하지 않고 다른 솔루션처럼 사용할 수 있으며 요구 사항에 따라 더 많은 유연성을 제공 할 수있다.

실제 문제와 병목 현상을 해결하기 위해 모니터링을받는 것이 좋습니다.

+0

+1 그레이엄 감사합니다. 귀하의 블로그는 매우 좋았고 연설은 유익했습니다. 나는 아직 기술 시도 단계에 있으며 아파치 데몬을 고수 할 수도있다. 하지만 당신은 또한 nginx의 경량을 달성하기 위해 언급, 아파치 일부 buildin 개조를 해제해야합니다. 달성하기가 어렵습니까? – Houman

+0

사용중인 Linux 배포판과 Apache 배포판 사용 여부에 따라 다릅니다. 예를 들어 http://www.cyberciti.biz/faq/howto-disable-apache-modules-under-linux-unix/ 다른 플랫폼은 약간 다를 수 있습니다. Apache 설치에서 실행중인 경우 적절한 LoadModule 행을 주석 처리하는 것이 좋습니다. –

+0

아, 사과와 함께 아파치와 함께 우분투 12.04를 사용하고 있습니다. 그래서 나는 그것들을 어떻게 비활성화시키는지를 보았다. 사용 가능한 모든 모듈 목록을 안전하게 비활성화 할 수 있습니까? – Houman