우리는 django를 사용하여 mysql을위한 json webservice 프론트 엔드를 만들고있다. 우리는 아파치와 django가 EC2 인스턴스와 MySQL을 RDS 인스턴스에서 실행하고 있습니다. 우리는 아파치 벤치를 사용하여 벤치마킹 성능을 시작했으며 성능 수치가 매우 낮습니다. 또한 테스트를 실행하는 동안 apache/django 인스턴스가 매우 낮은로드에서 100 % cpu 사용률로 이동하고 MySQL 인스턴스가 2 % CPU 사용률을 초과하지 않음을 발견했습니다.django에서 인증 기능을 빠르게하는 방법이 있습니까?
것은 우리는이를 이해하고 문제를 격리하기 위해 노력하고, 그래서 우리는 몇 가지 AB를 시험했다 :
- 아파치에서 정적 HTML 페이지에 대한 요청 - ~ 2000 요청/초.
- django에서 작은 파이썬 함수를 실행하고 db interaction없이 ~ 1000 요청/초 요청.
- 우리의 django webservice 함수 중 하나를 실행하여 인증을 호출 한 다음 테이블에서 레코드 하나를 가져 오는 매우 간단한 쿼리를 수행하는 요청 - 초당 11 요청
- 3과 같지만 인증 호출에 주석 처리됨 - - 초당 95 회의 요청.
인증이 너무 느린 이유는 무엇입니까? DB에 데이터를 쓰고 있으며 십억 자리의 파이를 찾는거야?
우리는 URL을 추측 할 수있는 누구에게나 공개하고 싶지 않기 때문에이 함수에 인증을 요청하고 싶습니다. 여기 누군가가 인증이 느리고 누군가가 제안 할 수 있음을 알았습니까? 그것을 고치는 방법?
대단히 감사합니다!
다음을 시도해보십시오. django-debug-toolbar를 다운로드하고 출력을 읽으십시오. 쿼리의 종류를 확인하십시오. django-profile을 실행하고 함수 실행 시간을 읽으십시오. 마지막으로, newrelic을 얻으십시오 ... 무료 버전이라도 view func 당 유용한 고장을 보여줍니다. 어떤 결과를 듣고 흥분! –