사용자 트래픽 최적화
활성 Tableau Server 사용자가 많고 추출 새로 고침이 필요한 게시된 데이터 원본 수는 적은 경우 트래픽을 최적화할 수 있습니다.
사용자 트래픽 최적화가 필요한 시점
뷰 로드에 오랜 시간이 걸리는 경우
샘플 성능 통합 문서의 Requests and Sessions(요청 및 세션) 대시보드를 사용하여 뷰 로드에 걸리는 시간을 분석합니다.
로드에 10초 이상이 걸리는 뷰가 여러 개이고 로드 시간이 길어지는 때와 세션 수가 많아지는 때가 일치하는 경우 사용자 트래픽 때문에 서버 성능이 저하된다는 의미입니다.
하지만 보는 시간에 관계없이 특정 뷰를 로드하는 데 오랜 시간이 걸린다면 해당 뷰의 통합 문서를 최적화해야 한다는 의미입니다. 로드 시간 통계 관리 뷰에서 최적화해야 하는 통합 문서를 식별할 수 있습니다. 통합 문서를 최적화하는 몇 가지 간단한 방법은 각 뷰에 표시되는 정보의 양을 줄이거나, 필터 수를 줄이거나, 데이터 추출을 사용하는 것입니다.
사용자 트래픽이 높은 리소스 사용량을 유발하는 경우
트래픽이 피크인 시간 중에 CPU 및 메모리의 사용량이 높아지는 경우 사용자 트래픽을 최적화해야 합니다. 피크 시간대를 결정하고 서버의 동시 사용자 수를 분석하려면 Users and Actions(사용자 및 작업) 대시보드를 사용하십시오. 또한 뷰에 대한 트래픽 관리 뷰를 사용하여 뷰 액세스와 관련된 사용자 트래픽의 양을 확인할 수 있습니다(관리 기능, 게시 또는 기타 작업을 수행하는 트래픽 제외).
사용자 수 뷰에서 특정 위치를 클릭하면 대시보드에 해당 시점의 활성 사용자와 해당 사용자가 수행한 사용자 작업의 수가 표시됩니다. 기본적으로 표시되는 유일한 사용자 작업은 사용자 뷰이지만 동작 유형 필터를 사용하여 추가 사용자 동작을 표시할 수 있습니다.
동시 사용자 및 뷰 수가 많은 시간대를 기록하여 리소스 사용량과 비교할 수 있습니다. 경험적인 규칙에 따르면, 사용자 수와 사용자 작업 수가 비례해야 합니다. 하지만 이 예제의 뷰에서는 부하 생성 테스트 때문에 단일 사용자의 작업 수가 비정상적으로 높게 나타납니다. 예를 들어 6월 28일 오전 12시의 높은 뷰 수와 나중에 설명할 대시보드의 리소스 사용량을 비교할 수 있습니다.
CPU Usage(CPU 사용량) 대시보드를 사용하여 총 CPU 사용량 백분율과 각 프로세스의 CPU 사용량 백분율을 표시합니다. 다음 예제에서는 총 CPU 사용량이 6월 28일 오전 12시에 VizQL 서버 프로세스에서 크게 증가합니다. VizQL 서버 프로세스는 뷰를 로드하고 렌더링하므로 사용자 트래픽이 높아지면 VizQL 서버 프로세스가 우선적으로 영향을 받는 프로세스가 되는 경우가 많습니다.
참고: 개별 프로세스의 CPU 사용량 백분율을 모두 더하면 100%가 넘을 수 있습니다. 이것은 개별 프로세스의 프로세서 사용량이 지정된 프로세서 코어에서 측정되기 때문입니다. 반대로, 총 CPU 사용량은 모든 프로세서 코어에 대해 측정됩니다.
Memory Usage(메모리 사용량) 대시보드를 사용하여 총 메모리 사용량 백분율과 평균 메모리 사용량을 GB 단위로 표시합니다. 경험에 따르면 메모리 사용량은 사용자 트래픽과 함께 지속적으로 증가합니다. 이 경우에도 사용자 트래픽이 높아지면 VizQL 서버 프로세스가 우선적으로 영향을 받습니다.
사용자 트래픽을 최적화하는 방법
이전에 표시한 예제와 같이, 사용자 트래픽이 높이지는 시기와 리소스 사용량이 높아지는 시기가 일치하는 경우 사용자 트래픽을 최적화해야 합니다.
VizQL 서버 프로세스 수 조정
사용자 트래픽을 최적화하는 가장 효과적인 방법은 VizQL 서버 프로세스의 수를 조정하는 것입니다. 한 번에 하나씩 VizQL 서버 프로세스를 추가하고 성능 모니터링으로 효과를 측정합니다. VizQL 서버 프로세스가 많은 CPU와 메모리를 사용하기 때문에 너무 많은 프로세스를 추가해도 서버 성능이 저하될 수 있습니다. 메모리 사용량이 지속적으로 높게 나타나는 경우 VizQL 서버 프로세스의 수를 줄여 예약되는 메모리의 양을 줄이십시오.
프로세스 구성에 대한 자세한 내용은 노드 구성을 참조하십시오.
다른 프로세스 수 조정
사용자 트래픽에 대한 성능을 향상시키는 가장 효율적인 방법은 VizQL 서버 프로세스 수를 조정하는 것이지만 VizQL 서버 프로세스를 지원하거나 VizQL 서버 프로세스가 리소스에 액세스하는 것을 방해하는 다른 프로세스를 조정할 수도 있습니다. 예를 들어 VizQL 서버 프로세스가 캐시 서버 프로세스에 자주 요청을 하는 경우 캐시 서버 프로세스의 수를 늘릴 수 있습니다. 반대로, 백그라운더 프로세스는 VizQL 서버 프로세스와 CPU 리소스 경합을 벌일 수 있습니다. 따라서 추출 새로 고침을 자주 실행할 필요가 없다면 백그라운더에 대한 프로세스의 수를 줄일 수 있습니다. 백그라운더의 추가적인 인스턴스가 필요하고 클러스터에서 Tableau Server를 실행하는 경우 백그라운더 프로세스를 전용 노드로 이동할 수 있습니다.
VizQL 세션 시간 제한 조정
이전에 보여준 예제에서 VizQL 서버 프로세스가 사용하는 메모리의 양은 사용자 트래픽과 함께 증가했으며 트래픽이 사라진 후에도 일정 시간 동안 Tableau Server에 예약된 상태로 유지되었습니다. 이것은 VizQL 서버 프로세스가 각 세션에 대한 메모리를 지정된 시간 동안 예약하기 때문입니다. VizQL 서버 프로세스가 사용 가능한 메모리의 많은 부분을 사용하는 경우 각 세션에 대한 시간 제한을 줄여 보다 빠르게 메모리를 해제하게 만드십시오.
이렇게 하려면 tsm configuration set
명령을 사용하여 vizqlserver.session.expiry.timeout
설정을 낮추십시오. 기본값은 30분입니다.
캐시 새로 고침 빈도 낮추기
사용자에게 항상 최신 데이터가 필요한 것이 아니라면 Tableau Server가 최대한 데이터를 캐싱하고 재사용하도록 구성하여 사용자 트래픽을 최적화할 수 있습니다.
이렇게 하려면 tsm data-access caching list
명령을 사용하여 새로 고침 빈도를 확인하십시오. 기본값은 Low
입니다. tsm data-access caching set
명령을 사용하여 새로 고침 빈도를 변경하십시오.
뷰 반응 평가
사용자가 뷰를 열면 뷰의 구성 요소가 먼저 검색 및 해석되고 사용자의 웹 브라우저에 표시됩니다. 대다수 뷰의 경우 사용자 웹 브라우저에 표시 렌더링 단계가 발생하며 대개의 경우 대화형 반응의 결과가 가장 빨라지고 수준이 가장 높아집니다. 클라이언트 웹 브라우저에서 대부분의 상호 작용을 처리하면 대역폭이 줄어들고 왕복 요청 지연이 제거됩니다. 뷰가 매우 복잡할 경우 최적의 성능을 위해 Tableau Server는 클라이언트 웹 브라우저가 아니라 서버에서 렌더링 단계를 처리합니다. 뷰가 제대로 반응하지 않으면 클라이언트 웹 브라우저가 아니라 서버에서 뷰를 렌더링하게 하는 임계값을 테스트 및 변경할 수 있습니다. 자세한 내용은 클라이언트 쪽 렌더링 구성를 참조하십시오.