문제

내가 노력하고 확대는 응용 프로그램 서버 프로세스 20,000 요청에 동의합니다.

을 때 저는 스트레스 테스트 요청의 대부분의 요청이 있는 쉽게 처리 20,000RPM 이상입니다.

하지만,요청을 만들 필요가 있는 외장하는 HTTP 요청(예를 들어,Facebook 로그인)을 가지고 서버를 아래로(3,000RPM).

나는 개념적으로 제약을 이해하의 현재 환경-3 부하 균형 서버의 4 개의 유니콘 노동자의 서버당만을 처리할 수 있 12 에서 요청한 시간 경우에도,그들 모두가 기다리고 있에 HTTP 요청이 있습니다.

어떤 옵션이 있는 확장이 좋을까?고 싶 처리 더 많은 연결이 한 번에.

가능한 솔루션으로 내가 그것을 이해하기:

  1. Brute force:더 많이 사용하는 유니콘자(즉,RAM)에 더 많은 서버에 있습니다.

  2. 밀어 모든 차단 작업으로 배경/작업자 프로세스를 무료로 웹 프로세스입니다.클라이언트가 필요한 설문 조사를 정기적으로 찾으면 그들의 요청이 완료됩니다.

  3. 이동 Puma 대신 유니콘의(그리고 아마도를 Rubinius 에서 MRI),그래서 사용할 수 있는 스레드가 대신 프로세스--수 있는(??) 메모리 사용량을 개선 연결당,따라서 허용 노동자의 수를 늘려 나갈 예정입니다.

기본적으로 무엇을,내가 찾는 사람은:더 좋은 방법이 있의 수를 증가하는 차단/대기 중인 요청을 하나의 작업자 처리할 수 있도록의 수를 증가시킬 수 있습니다 연결은 서버 당?

예를 들어,내가 들었어요 토론을 사용하는 얇은 EventMachine.는 이의 가능성을 열 레일 작업자를 넣을 수 있는 웹 요청은 그것의 현재 작업(기 때문에 하나가 기다리고 있는 외부 서버)그리고 다음에 다른 요청을 하는 동안 그것이 기다리고 있습니까?그렇다면,이 가치 있는 길을 추구하는 성능과 비교 유 Puma?(는 그에 따라 달라집 런타임 활동의 응용 프로그램?)

도움이 되었습니까?

해결책

유니콘은 하나의 스레드,다중 프로세스 동기식 응용 프로그램 서버.그것은 좋은 일을 위해 이런 종류의 처리합니다.

같은 소리로 응용 프로그램 I/O 니다.이러한 주장에 대한 이벤트를 지향 데몬 프로세스입니다.

력 EventMachine 및 em-http 요청과 em-http server.

이것은 당신 모두를 서비스하로 들어오는 요청에 http server 고 나가는 HTTP 서비스 호출이 비동기적으로 수행됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top