2012-11-16 5 views
2

CPU가 바운드 (SSD에서 실행 중) 할 때마다 Mongo는 내 컴퓨터에서 하나의 CPU 만 사용합니다. 나는 8 가지가있다. 몽고가 그것을 활용할 수 있는가? 가급적이면 루비에서 그렇지 않으면 쉽게 변환 할 수 있습니다.Mongo에서 멀티 스레딩이 가능합니까?

+1

Ruby는 어떻게 들어 맞습니까? 클라이언트 측 코드를 멀티 스레드로 처리 하시겠습니까? – Thilo

+0

Mongo가 할 수 없다면 클라이언트 측에서 해킹으로 멀티 스레드하는 것이 좋습니다. –

+0

또한보십시오 : [MongoDB는 어떻게 든 단일 코어로 제한됩니까?] (http://stackoverflow.com/questions/9773606/is-mongodb-somehow-limited-to-a-single-core). – Stennie

답변

-1

에서, mongod 과정에서 하나의 스레드 만이지도를 포함 JS 작업, 그래서 한 번에 자바 스크립트를 실행/축소 및 집계는 단일 스레드로 잠길 것입니다. hadoop 어댑터를 연결하여 동시 맵/축소를 수행 할 수 있습니다. javascript를 사용하지 않는 I/O 연산은 v2.2에서 특정 locking rules을 도입하면서 동시에 실행할 수 있으므로 제한된 방식으로 병렬 처리를 수행 할 수 있습니다. mongos (sharding your data)를 실행하는 경우보다 나은 동시성을 얻을 수 있지만 일반적으로 단일 mongod 프로세스에서는 단일 스레드로 제한됩니다.

+0

하나의 작업에 여러 스레드를 사용하지는 않지만 10 개의 동시 쿼리를 실행하면 동시에 진행할 수 있습니까? – Thilo

+0

MongoDB 2.2 및 이전 버전은 기본적으로 Mozilla의 [SpiderMonkey] (http://en.wikipedia.org/wiki/SpiderMonkey_ (JavaScript_engine)) JavaScript 엔진을 사용합니다. 언급 한 바와 같이 하나의 스레드 만 JavaScript를 실행하지만 MapReduce와 같은 작업은 [동시성] (http://www.mongodb.org/display/DOCS/How+does+concurrency+work)을 허용하도록 양보합니다. 연결된 서버 문제는 곧 Google의 [V8] (http://en.wikipedia.org/wiki/V8_ (JavaScript_engine)) JavaScript 엔진에 대한 변경 사항을 나타냅니다. – Stennie

+0

참고 : 이미 [V8을 사용하여 소스에서 빌드] (http://www.mongodb.org/display/DOCS/Building+with+V8) 할 수 있지만 반드시 높은 성능을 보장하는 것은 아닙니다. [SERVER-2407] (https://jira.mongodb.org/browse/SERVER-2407)에서 V8이 기본 JavaScript 엔진이되어야하는 2.3 개발주기에 대한 최종 수정 및 테스트가 진행 중입니다. – Stennie

관련 문제