none
‘단일 스레드, 동기식만’ 의 의미가 무엇인지요? RRS feed

  • 질문

  • 안녕하세요! 답변 좀 부탁 드립니다.

    SQL Server 내용중 데이터베이스미러링 2 부분에서

    ‘단일 스레드, 동기식만’ 의 의미가 무엇인지요?

    감사합니다.

    2012년 11월 9일 금요일 오전 2:08

답변

  • 말씀하신 부분이 아래 부분을 뜻하시는것 같은데 아래 부분 참고 부탁드립니다.

    SQL Server 2008 Std에서는 미러링 방식중 동기 방식만 지원하며, 데이터 동기화를 위해 redo log를 할 때 단일 쓰레드를 사용하게 됩니다

    만일 SQL Server 2008 Ent 버전에서 CPU 5개 이상인 경우는 멀티 쓰레드를 이용해 redo log를 수행하게 됩니다.

    http://msdn.microsoft.com/ko-kr/library/ms187465(v=sql.100).aspx

    장애조치다시실행속도예측

    프로덕션 데이터베이스의 테스트 복사본을 사용하여 로그 레코드를 롤포워드하는 필요한 시간(다시실행  속도) 측정할 있습니다.

    장애 조치 중에 롤포워드 시간을 측정하는 방법은 다시 실행 단계 중에 미러 서버가 사용하는 스레드 수에 따라 결정됩니다. 스레드 수는 다음 경우에 따라 달라집니다.

    • SQL Server 2008 Standard에서 미러 서버는 항상 단일 스레드를 사용하여 데이터베이스를 롤포워드합니다.
    • SQL Server 2008 Enterprise에서 CPU 5 미만인 시스템에 있는 미러 서버도 단일 스레드만 사용합니다. 5 이상의 CPU 있으면 미러 서버는 장애 조치 중에 해당 롤포워드 작업을 여러 스레드로 분산합니다. 분산 작업을 병렬다시  실행이라고 합니다. 병렬 다시 실행은 CPU 4개당 스레드 하나를 사용하도록 최적화되었습니다.
    2012년 11월 13일 화요일 오전 2:40
    중재자

모든 응답

  • 안녕하십니까? 창조데이타 님
    Microsoft MSDN의 Forum 사이트를 방문해 주셔서 감사합니다.

    문의하신 "‘단일 스레드, 동기식만’ 의 의미가 무엇인지요?"에 대해서 답변드리겠습니다.

    단일 스레드란?
    If a component is marked as Single Threaded, then all methods of that component will execute on the main thread. There is one main thread for each MTS application. Since there is only one thread, it means that only one method can execute at any given time. If there are multiple single threaded components that are being accessed my multiple clients simultaneously, then it is easy to see why a bottleneck will occur. Since only one method can execute at a time, all of the other methods will be sitting around waiting their turn. This can essentially grind a system to a halt.

    동기식만? 이라고 질문 주셨는데 데이터 베이스 미러링관 관련한 동기/비동기식 에서 나오는 용어로 전제하에 참고자료를 참고부탁드립니다.
    운영 모드
    데이터베이스 미러링 세션은 동기 또는 비동기 작업으로 실행됩니다.

    비동기 작업에서는 미러 서버가 로그를 디스크에 쓸 때까지 기다리지 않고 트랜잭션이 커밋되므로 성능이 극대화됩니다. 동기 작업에서는 트랜잭션이 두 파트너에서 모두 커밋되지만 트랜잭션 대기 시간이 길어집니다.
    두 가지 미러링 운영 모드가 있습니다. 이 중에서 보호 우선 모드는 동기 작업을 지원합니다. 보호 우선 모드에서 세션을 시작하면 미러 서버는 가능한 한 빨리 미러 데이터베이스를 주 데이터베이스와 동기화합니다. 데이터베이스가 동기화되면 트랜잭션이 두 파트너에서 모두 커밋되지만 트랜잭션 대기 시간이 길어집니다.
    두 번째 운영 모드인 성능 우선 모드는 비동기적으로 실행됩니다. 미러 서버는 주 서버가 보낸 로그 레코드를 유지하려고 합니다. 미러 데이터베이스에 주 데이터베이스보다 약간 뒤처질 수 있습니다. 그러나 두 데이터베이스의 시간 간격은 일반적으로 크지 않습니다. 그러나 주 서버에 작업이 크거나 미러 서버 시스템이 과부화된 경우 이 시간 간격은 상당히 커질 수 있습니다.

    [참고자료]
    Threading Model
    데이터베이스 미러링 운영 모드

    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    2012년 11월 12일 월요일 오전 8:53
    중재자
  • 말씀하신 부분이 아래 부분을 뜻하시는것 같은데 아래 부분 참고 부탁드립니다.

    SQL Server 2008 Std에서는 미러링 방식중 동기 방식만 지원하며, 데이터 동기화를 위해 redo log를 할 때 단일 쓰레드를 사용하게 됩니다

    만일 SQL Server 2008 Ent 버전에서 CPU 5개 이상인 경우는 멀티 쓰레드를 이용해 redo log를 수행하게 됩니다.

    http://msdn.microsoft.com/ko-kr/library/ms187465(v=sql.100).aspx

    장애조치다시실행속도예측

    프로덕션 데이터베이스의 테스트 복사본을 사용하여 로그 레코드를 롤포워드하는 필요한 시간(다시실행  속도) 측정할 있습니다.

    장애 조치 중에 롤포워드 시간을 측정하는 방법은 다시 실행 단계 중에 미러 서버가 사용하는 스레드 수에 따라 결정됩니다. 스레드 수는 다음 경우에 따라 달라집니다.

    • SQL Server 2008 Standard에서 미러 서버는 항상 단일 스레드를 사용하여 데이터베이스를 롤포워드합니다.
    • SQL Server 2008 Enterprise에서 CPU 5 미만인 시스템에 있는 미러 서버도 단일 스레드만 사용합니다. 5 이상의 CPU 있으면 미러 서버는 장애 조치 중에 해당 롤포워드 작업을 여러 스레드로 분산합니다. 분산 작업을 병렬다시  실행이라고 합니다. 병렬 다시 실행은 CPU 4개당 스레드 하나를 사용하도록 최적화되었습니다.
    2012년 11월 13일 화요일 오전 2:40
    중재자