찾다

 >  Q&A  >  본문

mongodb 스레드 풀 설정이 작동하지 않습니다.

최근 스레드 풀 문제가 발생했습니다. 기본적으로 mongodb는 각 연결(즉, new의 연결 개체)에 최대 10개의 스레드가 있다고 합니다. MongoOpection의 ConnectionPerHost 매개변수를 통해 조정해야 하는데 실제로 이 매개변수의 값을 어떻게 수정해도 스레드 풀의 크기는 항상 10입니다. 왜 이렇게 해야 할까요? 수정됐나요?

또한 웹 애플리케이션의 경우 클라이언트가 인터페이스를 클릭할 때마다 연결을 설계(새로운 연결 개체)하는 것이 더 낫습니까, 아니면 프로그램 시작 시 새 연결을 생성한 다음 이를 할당하는 것이 더 낫습니다. 더 큰 스레드? 클라이언트가 연결할 때마다 스레드 풀에서 하나를 가져오는 것이 더 낫습니까? 개인적으로는 첫 번째 유형이 높은 동시성 조건에서 시스템에 더 높은 부하를 준다고 생각합니다.

迷茫迷茫2816일 전652

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-24 09:14:41

    직접 이유를 찾았습니다.
    1 사용된 JAVA 드라이버 버전이 너무 오래되었기 때문에 기본 스레드 수는 10입니다. 버전은 2.2이고 최신 버전은 2.12입니다. 한 연결의 기본 스레드 풀은 100으로 설정되었습니다
    2 공식 문서에 제공된 제안은 연결을 연 다음 스레드 풀에서 연결을 가져오는 것입니다
    3 MongoOperation 클래스는 버전 2.12에서 폐지되었지만 사용할 수 있습니다. ConnectionPerHost 매개변수를 설정하면 연결 매개변수에서 스레드 풀의 스레드 수가 표면적으로 수정될 수 있지만 실제로는 시스템 백그라운드의 스레드 풀 상한입니다. 여전히 100이고 매개변수는 적용되지 않지만(다른 설정 방법이 있는지 궁금합니다) 개인적으로 스레드 풀이 지속적으로 100 이상을 차지할 수 있다면 그다지 중요하지 않다고 생각합니다. 시스템 설계

    회신하다
    0
  • 취소회신하다