Project Server 2013에서 성능 문제 해결
요약: Project Server 2013에서 일반적인 병목 상태 및 그 원인에 대한 문제 해결 정보를 읽어보세요.
적용 대상: Project Server 2013
성능 테스트를 수행하는 동안 여러 가지 일반적인 병목 현상이 발견될 수 있습니다. 병목 현상은 팜의 특정 구성 요소가 용량 한도에 도달한 상황을 의미합니다. 이로 인해 팜 처리량이 더 이상 늘어나지 않거나 줄어들게 됩니다.
성능 모니터링 섹션에 지정된 지침을 사용하여 성능을 모니터링하면 Project Server 배포의 체감 성능에 영향을 주는 병목 현상을 보다 효율적으로 파악할 수 있습니다.
일반적인 병목 현상, 원인 및 해결 방법
다음 표에는 일반적인 병목 현상과 해당 원인 및 가능한 해결 방법에 대한 설명이 나와 있습니다.
병목 | 원인 | 해결 방법 |
---|---|---|
데이터베이스 경합(잠금) |
데이터베이스를 잠그면 여러 사용자가 하나의 데이터 집합에 대해 서로 충돌하는 수정을 수행하지 않도록 방지할 수 있습니다. 한 사용자 또는 프로세스에 의해 데이터 집합이 잠기면 다른 사용자 또는 프로세스는 첫 번째 사용자 또는 프로세스에서 데이터 수정을 완료하여 잠금이 해제될 때까지 동일한 데이터 집합을 수정할 수 없습니다. |
데이터베이스 잠금 경합의 횟수를 줄이려면 다음을 수행할 수 있습니다. 데이터베이스 서버를 수직 확장합니다. 읽기/쓰기에 대해 데이터베이스 서버 하드 디스크를 조정합니다. |
데이터베이스 서버 디스크 I/O |
하드 디스크에 대한 I/O 요청의 수가 디스크의 I/O 용량을 초과하면 요청이 대기 상태가 됩니다. 그 결과 각 요청을 완료하는 데 소요되는 시간이 증가합니다. |
여러 실제 드라이브에 데이터 파일을 분산하면 병렬 I/O가 가능합니다. 지정된 보기에 표시되는 프로젝트와 필드의 수를 제한함으로써 데이터베이스 서버에서 요청되는 데이터의 양을 제한합니다. 사용하는 사용자 정의 필드 수를 제한합니다(특히 작업 수준에서). Project Professional에서 저장 작업을 수행할 때 작업 수준에 수식 필드가 있으면 특히 데이터베이스 서버 디스크 I/O를 많이 사용하게 됩니다. |
프런트 엔드 웹 CPU 사용률 |
WFE가 사용자 요청으로 오버로드되면 평균 CPU 사용률이 100%에 근접하게 됩니다. 이렇게 되면 WFE에서 요청에 신속하게 응답하지 못하므로 클라이언트 컴퓨터에서 시간 초과 및 오류 메시지가 발생할 수 있습니다. |
이 문제는 두 가지 방법 중 하나를 사용하여 해결할 수 있습니다. 즉, 팜에 WFE 서버를 더 추가하여 사용자 부하를 분산하거나, 보다 속도가 빠른 프로세서를 추가하여 하나 이상의 웹 서버를 수직으로 확장하면 됩니다. |
서버 메모리 사용률 |
대규모 큐 작업을 많이 실행하는 경우 서버 메모리 사용률이 급격히 증가할 수 있습니다. 복잡한 서버 쪽 예약 계산 또는 수식 사용자 정의 필드 계산을 수행하는 경우에도 메모리 리소스를 훨씬 더 많이 사용할 수 있습니다. 그 결과 각 요청을 완료하는 데 소요되는 시간이 증가합니다. |
메모리 사용량으로 인해 병목 현상이 발생하는 계층을 모니터링합니다. 즉, 메모리 부족 현상이 발생하는 위치(응용 프로그램 서버, 프런트 엔드 웹 서버 또는 데이터베이스 서버)를 파악합니다. 데이터 부족 현상을 해결하려면 다음의 두 가지 옵션을 사용할 수 있습니다. 해당 계층용으로 추가 메모리를 구입하여 설치합니다. 부하를 처리하기 위한 추가 응용 프로그램 서버를 구입합니다. |
Active Directory 동기화 |
Project Server 사용자 및 리소스를 여러 도메인 및 포리스트의 서비스 사용자와 동기화할 수 있습니다. 이 기능을 통해 관리자가 대량의 사용자를 수동으로 추가하거나, 전자 메일 주소와 같은 사용자 메타데이터를 업데이트하거나, 시스템 액세스 권한이 더 이상 필요하지 않은 사용자를 비활성화하는 등의 소소한 작업을 수행하는 데 도움이 됩니다. Active Directory 동기화는 수동 또는 자동화된 일정으로 수행할 수 있습니다. 동기화 프로세스에서는 리소스를 많이 사용합니다. |
Active Directory 동기화는 사용자의 사용량이 많지 않은 기간에 실행하는 것이 좋습니다. 이렇게 하면 Active Directory 동기화로 인해 사용자의 체감 성능이 낮아지지 않습니다. 또한 중첩된 그룹을 많이 사용하지 않습니다. 중첩된 그룹을 사용하면 수행해야 하는 동기화가 더 복잡해져서 동기화 프로세스의 시간이 길어집니다. |
응용 프로그램 서버 CPU |
다음과 같은 경우 응용 프로그램 서버 CPU의 사용량이 증가할 수 있습니다. 복잡한 프로젝트를 예약하는 경우 복잡한 프로젝트의 수식을 계산하는 경우 기간별 자원 계획 분석이 설정된 상태로 많은 수의 프로젝트에 대해 프로젝트 분석을 실행하는 경우 |
응용 프로그램 서버의 CPU 사용량을 모니터링하고, 응용 프로그램 서버가 사용하는 CPU 리소스의 비율이 높은 경우에는 토폴로지에 응용 프로그램 서버를 더 추가하여 부하를 분산합니다. 응용 프로그램 서버를 더 추가하면 스레드가 추가되어 데이터베이스 서버에 대한 부하가 증가할 수 있습니다. 이로 인해 데이터베이스 서버에서 새로운 병목 현상이 발생할 수 있는데, 이 현상은 큐 설정에서 더 적은 작업 프로세서 스레드를 허용하면 해결할 수 있습니다. |
데이터베이스 서버 CPU |
일반적으로는 많은 수의 프로젝트로 구성되며 많은 필드가 표시되는 보기를 로드할 때 데이터베이스 서버 CPU 사용량이 증가할 수 있습니다. 그러면 해당 보기 적용 시 사용자의 체감 응답 시간이 길어집니다. |
지정된 보기에서 표시되는 필드 수 및 프로젝트 수를 제한합니다. |
참고 항목
Project Server 2013의 성능 및 용량 계획 개요
Project Server 2013에 대한 용량 계획 전략
Project Server 2013의 성능 및 용량 관련 하드웨어 권장 사항
Project Server 2013의 수직 확장 토폴로지와 수평 확장 토폴로지