2009-05-07 2 views
0

여기에 멀티 코어 이점이 있습니까?

"나는 응용 프로그램 서버가 200 명의 동시 사용자를 제공하는 싱글 코어 인텔 프로세서 &에서 실행 말해봐 .. 나에게 이런 식으로 프레임 보자. 윌은 지금 봉사하는 내 응용 프로그램 서버 (AS)를 사용 듀얼 코어 시스템에 하드웨어를 이동 동시 사용자 350 명 "이라고?

내가 궁금해하는 기본적인 질문은 "추가 프로세서 코어를 추가하면 서버의 I/O 기능을 향상시킬 수 있습니다."입니다. 때때로 하드웨어 공급 업체가 멀티 코어 서버를 홍보 할 때 암시하는 바가 정확히 있기 때문입니다.

답변

3

서버를 프로파일 링하고 병목 현상을 확인한 후 치료해야합니다.

메모리가 부족한 경우 더 많은 메모리를 구입하거나 빠른 메모리가있는 컴퓨터를 구입하십시오.

디스크에 바인딩되어 있고 정적 컨텐츠를 많이 제공하는 경우 SSD 드라이브를 고려하십시오.

데이터베이스가 바인딩 된 경우이를 고려하십시오.

하지만 일반적으로 구성이 바뀌고 설정을 조정하는 등의 작업이 필요합니다. 풀의 스레드 수를 변경하면 즉시 개선 될 것입니다.

많은 웹 서버와 데이터베이스는 여분의 코어를 활용하기 위해 작성된 소프트웨어입니다. 물론 많은 사람들이 코어 당 라이선스 비용을 부과하기 때문에 그 측면도 고려해야합니다.

0

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

1

CPU가 실제로 I/O를 수행하지 않기 때문에 이점이 나타날 수도 있고 그렇지 않을 수도 있습니다. 중요한 I/O를 기대하지는 않지만 주로 I/O 경계입니다.

편집 : 내 대답은 귀하의 코드가 실제로 여러 코어를 사용하도록 작성된 것으로 가정합니다. 그렇지 않은 경우 응용 프로그램이 추가 코어의 이점을 얻지는 않지만 다른 동시 작업을 수행 할 수있는 장비가 더 잘 갖추어집니다.

0

서버가 선택 기반 IO를 사용하는 단일 스레드이고 요청 처리가 부작용이 없다면 (즉, 개념적으로 병렬 처리 될 수 있음) 멀티 코어 시스템에서 여러 인스턴스를 실행 (일치)하면 최대화됩니다 기계의 계산 유틸리티.

이 처리량이 더 높은 처리량으로 변환되는지 여부는 요청 처리가 CPU 바인딩되었는지 여부에 따라 달라집니다. 일반적으로 IO는 분산 시스템의 주요 병목입니다. 하지만 (요청) 메시지 어셈블리가 중요한 계산을 필요로한다면 IO 비용을 초과하는 요청 당 주어진 CPU 당 오버 헤드가 있습니다. 여러 개의 cpus assist가 있으면이 경우에 분명히 차이가납니다.

프로토콜 수준을 고려하면 각 요청을 처리하는 데 상당한 계산이 필요한 경우 CPU 병목 현상이 서버 가용성에 영향을 미칩니다. 여러 개의 CPU를 사용하면 분명 도움이 될 것입니다.