programing

MongoDB는 어떻게든 단일 코어로 제한되어 있습니까?

skycolor 2023. 7. 1. 08:14
반응형

MongoDB는 어떻게든 단일 코어로 제한되어 있습니까?

MongoDB를 어떻게든 잘못 구성했을 수 있지만, 부하가 높을 때에도 두 개 이상의 코어를 사용하지 않는 것으로 보입니다.예를 들어, top은 현재 다음과 같이 표시됩니다.

Tasks: 145 total,   1 running, 144 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  41182768k total, 40987476k used,   195292k free,   109956k buffers
Swap:  2097144k total,  1740288k used,   356856k free, 28437928k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
16297 mongod    15   0  521g  18g  18g S 99.8 47.2   2929:32 mongod                                                                           
    1 root      15   0 10372  256  224 S  0.0  0.0   0:03.39 init      

Mongo가 다른 코어를 더 효과적으로 사용할 수 있도록 제가 할 수 있는 일이 있습니까?관련이 있다면, 저는 현재 많은 읽기 쿼리를 "대기" 모드로 전환한 것처럼 보이는 큰 M/R을 실행하고 있습니다.

MongoDB는 읽기 작업을 위해 멀티 코어 시스템의 모든 코어를 포화시킬 수 있지만 쓰기 작업 및 맵 축소의 경우 MongoDB는 mongod 프로세스당 단일 코어만 사용할 수 있습니다.

단일 코어 MapReduce에 대한 제한은 MongoDB가 사용하는 Javascript 인터프리터 때문입니다.이것은 미래에 수정되어야 하는 것이지만, 그 사이에 당신은 Hadoop을 사용하여 MapReduce를 실행하고 결과 세트를 MongoDB 데이터베이스에 저장할 수 있습니다.

혼합된 결과가 나온 또 다른 옵션은 인스턴스의 모든 코어에 대해 단일 mongod 프로세스를 실행하는 것입니다. 이는 데이터베이스가 분할된 설정에서 실행되도록 구성되지 않는 한 단일 데이터베이스의 성능을 향상시키지 않습니다.

언급URL : https://stackoverflow.com/questions/9773606/is-mongodb-somehow-limited-to-a-single-core

반응형