답변
는 단일 스레드 : 우리는 시스템이 지원할 수있는 초당 많은 요청을 파악하려는
. 아래 n
으로 표시됩니다. 요청의 70 %가 캐시 충돌 때문에
1 second = 1000 milliseconds = 0.7n(20) + 0.3n(100)
, 우리는 시간이 0.7n(20)
와 캐시를 공격 요청을 처리하는 동안 나타냅니다. 캐시를 놓친 요청은 0.3n(100)
으로 나타냅니다. 캐시 미스가있을 때 스레드가 잠자기 상태가되어 파일 서버에 접속하기 때문에 다음 요청에 대한 처리를 현재 스레드로 인터리브하는 것에 대해 걱정할 필요가 없습니다.
N에 대한 해결 :
1000 = 0.7n(20) + 0.3n(100) = 0.7n(20) + 1.5n(20) = 2.2n(20) = 44n => n = 100/44 = 22.73
합니다.
따라서 단일 스레드는 초당 22.73 요청을 처리 할 수 있습니다.
는 멀티는 스레드 :
문제는 컨텍스트 스위치 비용에서 떨어져, 멀티 스레드 상태에 대해 자세히 설명하지는 않습니다. 이 질문에 대한 대답은 몇 가지 요인에 따라 달라집니다.
- 컴퓨터에 몇 개의 코어가 있습니까?
- 한 번에 얼마나 많은 스레드가 존재할 수 있습니까?
- 캐시 미스가있는 경우 컴퓨터가 요청을 처리하는 데 소요되는 시간과 컴퓨터가 잠자는 데 소요되는 시간은 얼마나됩니까?
나는 다음과 같은 가정을 만들려고하고있다 : (1 개) 핵심이
- .
- 한 번에 얼마나 많은 스레드가 존재할 수 있는지에 대한 경계가 없습니다.
- 캐시 미스에서 컴퓨터는 요청을 처리하는 데 20 밀리 초 (예 : 캐시 확인, 파일 서버 연결 및 응답을 클라이언트로 전달) 및 80 밀리 초의 절전 모드를 사용합니다. 지금 N에 대해 해결할 수
:
1000 milliseconds = 0.7n(20) + 0.3n(20)
.
캐시 미스에서 스레드는 작업을 수행하는 데 20 밀리 초가 소요되고 80 밀리 초가 소요됩니다. 쓰레드가 휴면 상태 일 때 다른 쓰레드가 실행되어 유용한 작업을 수행 할 수 있습니다. 따라서 캐시 미스에서 스레드는 CPU를 20 밀리 초 동안 만 사용하지만 프로세스가 단일 스레드 인 경우 다음 요청은 100 밀리 초 동안 서비스가 차단되었습니다.
N에 대한 해결 :
1000 milliseconds = 0.7n(20) + 0.3n(20) = 1.0n(20) = 20n => n = 1000/20 = 50
합니다.
따라서 멀티 스레드 프로세스는 위의 가정에 따라 초당 50 개의 요청을 처리 할 수 있습니다.
yey! 나는이 정확한 방식으로 그것을 해결했다. 그래도 감사합니다. – Adorn