2009-07-22 7 views
7

나는이 질문에 많이 물어봤을 것 같다. 나는 내가 그것에 대해 작업했기 때문에을 축척 할 수 있고 그것은 굉장합니다. 레일을 알 수 있습니다. 그리고 PHP 프레임 워크에 관한 한 그다지 의심의 여지가 없습니다.스케일링 비용 레일과 스케일링 비용 PHP 대 파이썬 프레임 워크

어떤 프레임 워크가 더 좋은지 알고 싶지 않습니다.

스케일링 비용의 차이는 얼마나됩니까? 레일스와 다른 프레임 워크 (PHP, Python)는 매월 1 백만 회의 방문을하는 대규모 응용 프로그램이라고 가정합니까?

이것은 많이 묻습니다. 나는 사람들에게 "Rails가 꽤 잘 확장된다"는 것을 설명 할 수는 있지만, 장기적으로, 경제는 무엇인가?

누군가가 일부 측정 항목을 제공 할 수 있다면 좋을 것입니다.

+2

나는 너무 호기심이 많지만,이 질문에 대한 구체적인 대답이 있는지 의심 스럽다. 변수가 너무 많습니다. 사이트 디자인, 프로그래머 시간 대 기계 시간 등의 가치 대부분의 플랫폼에는 대형 사이트의 예가 있지만, –

답변

5

이 주요 요인 중 하나는 데이터베이스 액세스가 프레임 워크 선택에 영향을받지 않는다는 것입니다. 어떤 접근 방식을 사용하든 상관없이 관계형 데이터베이스에 데이터를 넣을 가능성이 높습니다. 그렇다면 문제는 데이터베이스에서 얼마나 효율적으로 데이터를 가져올 수 있는지입니다. 이것은 주로 RDBMS (Oracle vs. Postgres vs. MySQL)에 의존하지만 프레임 워크에서는 그렇지 않습니다. 단, 일부 데이터 매핑 라이브러리는 SQL을 비효율적으로 사용할 수 있습니다.

순수한 "방문수"매개 변수에 대한 질문은 실제로 HTML 템플릿 시스템이 얼마나 빨리 작동하는지입니다. 그래서 질문은 얼마나 많은 페이지를 초당 렌더링 할 수 있습니까? 나는이 시스템이 얼마나 훌륭한 시스템인지를 결정하기위한 기본 메트릭스로 만들 것이다.

물론 다른 페이지의 비용이 다를 수 있습니다. 어떤 경우에는 캐싱을 사용할 수 있지만 다른 캐싱은 사용할 수 없습니다. 따라서 확장 성을 측정 할 때 1 백만 번의 방문을 값이 싼 비싼 페이지로 나누고 따로 따로 측정하십시오. 함께 시스템을 사용할 수있는 부하 (또는 요구 사항을 충족시키는 데 필요한 시스템 수)를 잘 예측해야합니다.

또한 메모리 사용 문제가 있습니다. SQL에있는 데이터를 가지고 있다면 이것은 중요하지 않습니다. 그러나 캐싱을 사용하면 확장 성을 고려해야 할 수도 있습니다. 주 메모리 사용.

4

IMHO "확장 성 배터리"가 포함되어 있지 않기 때문에 스케일링 비용이 다른 세 가지가 될 것이라고 생각하지 않습니다. 세 가지 선택 사항간에 아키텍처 차이가 크게 나타나지 않아 확장성에 큰 차이가 발생할 수 있습니다.

즉, 세 가지 언어 중 어떤 언어에 관계없이 응용 프로그램 아키텍처가 응용 프로그램의 규모를 지배하게 될 것입니다.

메모리 캐싱이 필요한 경우 적어도 memcached (또는 세 가지 언어와 모두 호환되는 유사한)를 사용하려고합니다. 어쩌면 nginx를 사용하여 memcache에서 직접 서비스 할 수있는 확장 성을 도울 수는 있지만, 분명히 php/perl/python/ruby의 성능을 변경하지는 못할 것입니다.

MySQL 또는 PostgreSQL을 사용하는 경우 응용 프로그램 언어와 상관없이 스케일링을 위해 데이터베이스를 올바르게 설계해야하며 클러스터링/미러링을 시작하는 데 사용하는 도구는 앱 외부에있게됩니다.

메모리 사용량 측면에서 파이썬 (mod_wsgi 데몬 모드 사용) 및 루비 (여객/mod_rack을 사용하는 엔터프라이즈 루비)는 fcgi에서 PHP와 비교했을 때 꽤 괜찮은 발자국을 가지고 있다고 생각합니다. mod_php (PHP MPM prefork + php는 모든 아파치 프로세스에서 많은 메모리를 낭비한다).

이 질문은 재미있는 부분일지도 모르지만 어랭 (Erlang)과 같은 3 가지 언어를 비교하려고합니다. 얼랭 (Erlang)과 같은 모든 얼랑 (Erlang) 프로세스에서 자동으로 저렴한 확장 성을 지니고 있지만, RDBMS 데이터베이스 병목 현상 귀하의 애플 리케이션이 멋지게 Erlang 데이터베이스 방식 중 하나에 들어 가지 않는 한, 예를 들어 couchdb.

1

불행히도 Rails, PHP 및 Django의 비용 비교를 알지 못합니다. 그러나 스프링 웹 (9k $), 개찰구 (59k $), GWT (6k $) 및 JSF (49k $)와 같은 일부 Java 웹 프레임 워크의 비용 비교를 알고 있습니다. 이

http://www.devoxx.com/display/DV11/WWW++World+Wide+Wait++A+Performance+Comparison+of+Java+Web+Frameworks

당신이 그것에 대해 게시물을 (짧은) :

당신은 여기에 원래 회의를

http://blog.websitesframeworks.com/2013/03/web-frameworks-benchmarks-192/

이 비용에 대해 infere하려고 시도하는 경우 . 당신이 봄이 꽤 저렴 알고 개찰구을 비교하고 장고/레일이 개찰구와 봄 이상의 벤치 마크에서 나쁜 마크가있는 경우,

http://www.techempower.com/benchmarks/

그래서 아마 수단을 : 당신은 Techempower에 의해 제안 된 bencharmk와이 데이터를 교차 수 그들은 더 높은 비용을 나타낼 것입니다.

는 도움이되기를 바랍니다.