문제

Python에서 서버가 CPU를 잘 확장하기를 원한다면 여러 프로세스를 생성해야합니다. 나는 어느 쪽이 더 나은지 궁금했다 (Twisted 사용) :

a) 관리자 프로세스 (실제 소켓 연결을 보유하는 사람)는 수신 된 패킷을 공유 큐 (멀티 프로세싱 모듈에서 나온)에 넣고 작업자 프로세스는 큐에서 패킷을 뽑아 처리하고 결과를 다시 보냅니다. 클라이언트.

b) 관리자 프로세스 (실제 소켓 연결을 보유하는 사람)는 지연된 스레드를 시작한 다음 프로세스 풀에서 apply () 함수를 호출합니다. 결과가 작업자 프로세스에서 반환되면 관리자는 결과를 클라이언트로 다시 보냅니다.

두 구현에서 작업자 프로세스는 스레드 풀을 사용하므로 한 번에 둘 이상의 패킷에서 작업 할 수 있습니다 (많은 데이터베이스 쿼리가 있기 때문에).

도움이 되었습니까?

해결책

나는 B가 문제가된다고 생각합니다. 스레드는 하나의 CPU에서만 실행되며 프로세스가 실행 되더라도 스레드가 여전히 실행 중입니다. A가 더 좋을 수도 있습니다.

시간 측면에서 모두 시도하고 측정하고 어느 것이 더 빠르고 어느 쪽이 잘 유지되는지 보는 것이 가장 좋습니다. 그러나 나는 B가 잘 확장 될 것이라는 의심을 의심한다는 것을 반복 할 것이다.

다른 팁

나는 "A"가 원하는 대답이라고 생각하지만 직접 할 필요는 없습니다.

당신은 고려 했습니까? 앰풀?

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