문제

이런 식으로 틀겠습니다 ..

"단일 코어 인텔 프로세서에서 실행중인 애플리케이션 서버가 실행되고 200 개의 동시 사용자에게 서비스를 제공한다고 가정 해 봅시다. 하드웨어를 듀얼 핵심 시스템으로 옮기면 내 애플리케이션 서버가 350 동시 사용자에게 서비스를 제공 할 수 있습니다."

제가 처리하고자하는 기본 질문은 "추가 프로세서 코어를 추가하면 서버의 I/O 기능을 높이는 데 도움이 될 수 있습니다"입니다. 때로는 하드웨어 공급 업체가 멀티 코어 서버를 선전 할 때 암시하는 것과 정확히 일치하기 때문입니다.

도움이 되었습니까?

해결책

서버를 프로파일 링하고 병목 현상을 결정하고 처리해야합니다.

메모리 묶인 경우 메모리를 더 많이 구입하거나 메모리가 더 빠른 컴퓨터를 구입하십시오.

디스크 묶인 정적 컨텐츠를 많이 사용하는 경우 SSD 드라이브를 고려하십시오.

데이터베이스가 묶인 경우 고려하십시오.

그러나 일반적으로 "구성 묶인"구성을 조정하면 수영장의 스레드 수를 변경하거나 구성하면 즉시 개선됩니다.

많은 웹 서버와 데이터베이스는 추가 코어를 활용하기 위해 작성된 소프트웨어입니다. 물론 많은 사람들이 코어 당 라이센스 비용을 청구하므로 해당 측면도 고려하십시오.

다른 팁

귀하는 혜택을 보거나 보지 않을 수도 있지만 CPU가 실제로 수행하지 않기 때문에 I/OI는 중요한 이점이 주로 I/O의 구속력이라는 중요한 혜택을 기대하지 않을 것입니다.

편집 : 내 대답은 실제로 여러 코어를 활용하도록 코드가 작성되었다고 가정합니다. 그렇지 않은 경우 응용 프로그램은 추가 코어의 이점이 없지만 다른 동시 작업을 수행 할 수있는 기계가 더 잘 갖추어져 있습니다.

물론 응용 프로그램 서버 작성 방법에 따라 다릅니다. 소프트웨어가 병렬 프로그래밍 기술을 사용하지 않으면 하드웨어가 지원하는 경우에도 병렬로 실행할 수 없습니다.

서버가 단일 스레드 (Select Based IO를 사용하여)이고 요청 처리가 부작용이 없으면 (즉, 개념적으로 병렬화 될 수 있음), 멀티 코어 머신에서 여러 인스턴스가 계산 유틸리티를 최대화 할 수 있습니다. 기계.

이것이 더 높은 처리량으로 해석되는지 여부는 요청 처리가 CPU 바운드인지 여부에 따라 다릅니다. 경험상 IO는 분산 시스템의 주요 병목 현상입니다. 그러나 (요청) 메시지 어셈블리에는 상당한 계산이 필요하지만 IO 비용 외에 요청 당 특정 CPU 오버 헤드가 있습니다. 다수의 CPU 지원을 받으면이 경우 분명히 차이가 생길 수 있습니다.

프로토콜 수준 고려 사항 외에도 각 요청을 처리하려면 상당한 계산이 필요한 경우 CPU 병목 현상이 있으면 서버 가용성에 영향을 미칩니다. 여러 CPU를 사용하면 명확하게 도움이됩니다.

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