오케스트레이터(Orchestrator) 성능(performance)을 높이고 교착상태(deadlock)를 방지하는 방법

Orchestrator에서 동시에 몆 백 개의 job을 시작하는 경우 Deaklock이 발생하는 경우가 있습니다.

Deadlock 을 방지하기 위한 두 가지 방법을 공유 드립니다.

Snapshot isolation 옵션이 적용되면 각 트랜잭션의 업데이트 된 행 버전이 유지 관리되며,
업데이트 시 table lock을 걸지 않기 때문에 select 문에서 deadlock이 걸리는 현상이 해소됩니다.

  1. UiPath.Orchestrator.dll.config 파일의

  2. UiPath DB에 Snapshot Isolation 옵션 적용
    아래 쿼리에서 빨간색으로 표시한 DB명만 고객사의 DB 명으로 변경하여 실행하면 됩니다.

https://docs.uipath.com/orchestrator/standalone/2023.4/installation-guide/orchestrator-prerequisites-for-installation

1 Like

위의 sql은 single user mode에서 실행하시거나,
Orchestrator를 중지시키시고, DB를 사용하지 않는 상태에서, with rollback immediate 라는 옵션과 함께 사용해야 합니다. 그렇지 않으면 몇 시간이 지나도 끝이 나지 않을 수 있습니다.
즉 아래와 같이 실행해야 합니다.
ALTER DATABASE UiPath SET READ_COMMITTED_SNAPSHOT ON with rollback immediate

1 Like