[python] 장고는 확장합니까? [닫은]

Django로 웹 응용 프로그램을 작성 중입니다. 내가 Django를 선택한 이유는 다음과 같습니다.

  • 무료 / 오픈 소스 도구로 작업하고 싶었습니다.
  • 나는 파이썬을 좋아하고 그것이 장기 언어라고 생각하지만, 루비에 관해서는 확실하지 않았으며 PHP는 배우는 데 번거로운 것처럼 보였습니다.
  • 아이디어를위한 프로토 타입을 제작하고 있으며 미래에 대해 너무 많이 생각하지 않았습니다. 개발 속도가 주요 요소였으며 이미 Python을 알고있었습니다.
  • 향후에 선택하면 Google App Engine으로의 마이그레이션이 더 쉬울 것이라는 것을 알았습니다.
  • 장고가 “좋다”고 들었습니다.

이제 나는 출판물에 대한 생각이 점점 가까워지면서 규모에 대해 걱정하기 시작했다. Django의 확장 기능에 대해 내가 찾은 유일한 정보는 Django 팀에서 제공합니다 (나는 무시할 말이 없지만 분명히 객관적인 정보는 아닙니다 …).

내 질문 :

  • 오늘날 Django에 구축 된 “가장 큰”사이트는 무엇입니까? (주로 사용자 트래픽으로 크기를 측정)
  • Django는 매일 2 시간 동안 사이트를 방문하는 100,000 명의 사용자를 처리 할 수 ​​있습니까 ?
  • Django에서 Stack Overflow와 같은 사이트를 실행할 수 있습니까?


답변

  1. “현재 Django에 구축 된 가장 큰 사이트는 무엇입니까?”

    Django 내장 사이트의 트래픽에 대한 정보를 수집하는 단일 장소가 없으므로 다양한 위치의 데이터를 사용하여 정보를 훔쳐 야합니다. 먼저 Django 메인 페이지의 첫 페이지에 Django 사이트 목록이 있고 djangosites.org 에 Django 빌드 사이트 목록이 있습니다 . 목록을 살펴보고 적절한 트래픽이있는 것을 선택하십시오.

  2. “Django는 매일 2 시간 동안 사이트를 방문하는 10 만 명의 사용자를 처리 할 수 ​​있습니까?”

    예, 위를 참조하십시오.

  3. “스택 오버플로와 같은 사이트가 Django에서 실행될 수 있습니까?”

    내 직감은 맞지만 다른 사람들이 대답하고 Mike Malone이 프레젠테이션에서 언급 한 것처럼 데이터베이스 디자인은 중요합니다. 신뢰할 수있는 트래픽 통계를 찾을 수있는 경우 www.cnprog.com에서도 강력한 증거를 찾을 수 있습니다. 어쨌든, 그것은 장고 모델을 함께 던져서 일어날 일이 아닙니다 🙂

물론 더 많은 사이트와 관심있는 블로거가 있지만, 나는 어딘가에서 멈춰야합니다!


Django를 사용하여 트래픽이 많은 사이트 michaelmoore.com을 구축하는 방법 에 대한 블로그 게시물은 최고 10,000 개의 웹 사이트 로 설명됩니다 . Quantcast 통계compete.com 통계 .


(*) 참조를 포함한 편집 작성자는 해당 프로젝트에서 아웃소싱 개발자로 일했습니다.


답변

우리는 지금 부하 테스트를하고 있습니다. 서버 성능을 크게 저하시키지 않으면 서 240 개의 동시 요청 (초당 24 회 연속 적중률 24×7)을 지원할 수 있다고 생각합니다. 그것은 시간당 432,000의 조회수입니다. 응답 시간은 작지 않지만 (트랜잭션은 크지 만)로드가 증가해도 기본 성능이 저하되지 않습니다.

우리는 Apache 프론트 엔드 Django와 MySQL을 사용하고 있습니다. OS는 RHEL (Red Hat Enterprise Linux)입니다. 64 비트. Django의 데몬 모드에서 mod_wsgi를 사용합니다. 기본값을 수락하는 것 외에는 캐시 또는 데이터베이스 최적화를 수행하지 않았습니다.

우리는 모두 32 비트 RAM을 갖춘 64 비트 Dell에서 하나의 VM에 있습니다.

20 또는 200 명의 동시 사용자에 대한 성능은 거의 동일하므로 “비틀기”에 많은 시간을 소비 할 필요가 없습니다. 대신 일반적인 SSL 성능 개선, 일반적인 데이터베이스 디자인 및 구현 (인덱싱 등), 일반적인 방화벽 성능 개선 등을 통해 기본 성능을 유지하기 만하면됩니다.

우리가 측정하는 것은 16 개의 동시 요청 스레드를 실행하는 15 개 프로세스의 미친 워크로드에서 어려움을 겪고있는로드 테스트 랩톱입니다.


답변

일일 방문 횟수는 확실하지 않지만 다음은 장고 사이트의 몇 가지 예입니다.

다음은 Quora의 트래픽이 많은 장고 사이트 목록에 대한 링크 입니다.


답변

오늘날 Django에 구축 된 “가장 큰”사이트는 무엇입니까? (주로 사용자 트래픽으로 크기를 측정)

미국에서는 Mahalo 였습니다 . 한 달에 약 1 천만 개의 고유 항목을 처리한다고합니다. 이제 2019 년에 Mahalo는 Ruby on Rails로 구동됩니다.

해외, Globo 네트워크 (브라질의 뉴스, 스포츠 및 엔터테인먼트 사이트 네트워크); Alexa는 전 세계에서 약 100 위 안에 들었습니다 (현재 약 80 위).

다른 장고 사용자로는 PBS, 내셔널 지오그래픽, 디스커버리, NASA (실제로는 NASA 내의 여러 부서) 및 의회 도서관이 있습니다.

Django는 매일 2 만 시간 동안 사이트를 방문하는 100 만 명의 사용자를 처리 할 수 ​​있습니까?

예.하지만 애플리케이션을 올바르게 작성하고 하드웨어가 충분한 경우에만 가능합니다. 장고는 마법의 총알이 아닙니다.

Django에서 StackOverflow와 같은 사이트를 실행할 수 있습니까?

예 (위 참조).

기술 측면에서 쉽게 : 한 번의 시도로 클론 을 보십시오 . 트래픽 측면에서 월간 백만 개 미만의 유니크로 페그 스택 오버 플로우를 경쟁하십시오. SO보다 트래픽이 많은 장고 사이트를 적어도 12 개 지정할 수 있습니다.


답변

웹 앱 확장은 웹 프레임 워크 또는 언어가 아니라 아키텍처에 관한 것입니다. 브라우저 캐시, 데이터베이스 캐시, CouchDB 와 같은 비표준 지속성 공급자를 사용 하는 방법, 데이터베이스 및 기타 많은 것들을 어떻게 조정하는지에 관한 것입니다.


답변

악마의 옹호자를 약간 연주 :

Cal Henderson이 제공 한 “Django를 싫어하는 이유”라는 제목 의 DjangoCon 2008 Keynote를 확인해야합니다 . 하루의 끝에서 당신은 때문에 모든 열린 마음으로이를 취할 필요가 있다 장고 그 규모를 애플 리케이션을 쓸 수 있도록 완벽하게 가능하지만, 나는 귀하의 질문에 좋은 프리젠 테이션 및 관련 생각했다.


답변

내가 아는 가장 큰 장고 사이트는이다 워싱턴 포스트 는 것을 확실히를 나타냅니다, 수있는 확장 성.

올바른 디자인 결정은 다른 것보다 성능에 더 큰 영향을 줄 수 있습니다. 트위터는 종종 다른 동적 해석 언어 기반 웹 프레임 워크 인 Ruby on Rails의 성능 문제를 구현하는 사이트로 인용됩니다. 그러나 트위터 엔지니어들은 프레임 워크가 초기에 선택한 일부 데이터베이스 디자인만큼 큰 문제는 아니라고 언급했습니다. 의 위에.

Django는 memcached와 매우 잘 작동하며 대부분의 성능 문제를 해결할 캐시 관리를위한 클래스를 제공합니다. 와이어로 제공하는 것은 실제로 백엔드보다 훨씬 중요합니다. 고성능 웹 애플리케이션에는 yslow와 같은 도구를 사용하는 것이 중요합니다. 백엔드에서 항상 더 많은 하드웨어를 처리 할 수 ​​있지만 사용자 대역폭을 변경할 수는 없습니다.