PowerScale OneFS: 성능 문제 해결
Summary: 클러스터 효율성 향상을 위한 InsightIQ를 사용한 네트워크 구성, 처리 로드 및 모니터링에 대한 포괄적인 가이드를 통해 PowerScale OneFS 성능 저하 문제를 해결하십시오.
Symptoms
클라이언트 컴퓨터가 느리게 작동합니다. 특정 작업, 특히 클러스터에서 실행 중인 작업은 실패하거나 예상보다 오래 걸립니다.
Cause
성능 문제는 일반적으로 네트워크 트래픽, 네트워크 구성 문제, 클라이언트 또는 클러스터 처리 로드 또는 이들의 조합으로 인해 발생합니다. 이 문서에서는 성능 문제를 해결하는 몇 가지 효과적인 방법에 대해 설명합니다.
Resolution
InsightIQ
를 사용한 문제 해결 목차:
- Isilon InsightIQ 사용
- InsightIQ 없이 문제 해결
- 네트워크 처리량
- 클라이언트 연결 배포
- SmartConnect
- 클러스터 처리량
- 클러스터 처리
- 대기 중인 작업
- CPU
Isilon InsightIQ 사용
Isilon InsightIQ를 사용하는 것이 성능을 모니터링하고 성능 문제를 해결하는 가장 좋은 방법입니다.
Isilon InsightIQ 가상 어플라이언스를 사용하면 InsightIQ 웹 기반 애플리케이션에서 유연하고 맞춤 구성 가능한 차트 뷰를 통해 Isilon Cluster 작업을 모니터링하고 분석할 수 있습니다. 이 차트는 클러스터 하드웨어, 소프트웨어, 파일 시스템 및 프로토콜 작업에 대한 자세한 정보를 제공합니다. InsightIQ는 데이터를 성능 이상치를 강조하는 시각적 정보로 변환하여 병목 현상을 빠르게 진단하거나 워크플로를 최적화할 수 있도록 합니다.
InsightIQ 사용에 대한 자세한 내용은 InsightIQ 사용자 가이드를 참조하십시오.
InsightIQ 없이 문제 해결
InsightIQ를 사용하지 않는 경우 다양한 명령을 실행하여 성능 문제를 조사할 수 있습니다. 먼저 네트워크 및 클러스터 처리량을 검사한 다음 클러스터 처리를 검사하고 마지막으로 개별 노드 CPU 속도를 검사하여 성능 문제를 해결합니다.
네트워크 처리량
다음과 같은 네트워크 테스트 툴을 사용합니다. Iperf 네트워크에 있는 클러스터 및 클라이언트 컴퓨터의 처리량 능력을 확인합니다.
사용 Iperf를 클릭하고 클러스터 및 클라이언트에서 다음 명령을 실행합니다. 이러한 명령은 네트워크 링크가 레이턴시 문제의 잠재적인 원인인지 확인할 수 있을 정도로 큰 기간 크기를 정의합니다.
- 클러스터:
iperf -s -w 262144
- 클라이언트:
iperf -c <cluster IP> -w 262144
클라이언트 연결 배포
클러스터에 연결된 NFS 및 SMB 클라이언트 수를 확인하여 한 노드를 선호하지 않는지 확인합니다.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행하여 NFS 클라이언트를 확인합니다.
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs
출력에는 노드당 연결된 클라이언트 수와 각 노드에서 활성 상태인 클라이언트 수가 표시됩니다. - 다음 명령을 실행하여 SMB 클라이언트를 확인합니다.
isi statistics query - nodes=all --stats=node.clientstats.connected.smb, node.clientstats.active.smb1,node.clientstats.active.smb2
출력에는 노드당 연결된 클라이언트 수와 각 노드에서 활성 상태인 클라이언트 수가 표시됩니다.
SmartConnect
SmartConnect가 실행 중인 노드에 네트워크 트래픽이 발생하지 않는지 확인하십시오.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행합니다.
isi_for_array -sq 'ifconfig|grep em -A3'
출력에는 외부 인터페이스에 바인딩된 모든 IP 주소의 목록이 표시됩니다. - 나머지 노드보다 하나의 추가 IP 주소가 있는 노드를 확인합니다.
- 다음 명령을 실행하여 3단계에서 확인한 노드의 상태를 확인합니다.
isi status
출력의 throughput 열을 확인하여 3단계에서 확인된 노드의 로드를 확인합니다.
클러스터 처리량
파일을 읽고 쓰는 데 걸리는 시간을 측정하는 쓰기 및 읽기 테스트를 수행하여 클러스터 처리량을 평가합니다. 다음과 같이 쓰기 테스트와 읽기 테스트를 각각 하나 이상 수행합니다.
쓰기 테스트
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- /ifs 디렉토리로 변경합니다.
cd /ifs
- 클러스터의 CLI(Command Line Interface)나 UNIX 또는 Linux 클라이언트 컴퓨터에서
dd명령을 사용하여 클러스터에 새 파일을 기록합니다. 다음 명령을 실행합니다.dd if=/dev/zero of=1GBfile bs=1024k count=1024
이 명령은 샘플 1GB 파일을 생성하고 이 파일을 디스크에 쓰는 데 걸린 시간을 보고합니다. - 이 명령의 출력에서 단일 스트림 워크플로의 디스크에 쓸 수 있는 초당 MB를 추정합니다.
- MAC 클라이언트가 있고 추가 분석을 수행하려는 경우
- Activity Monitor를 시작합니다.
- 다음 명령을 실행합니다. 여기서
pathToFile은 타겟 파일의 파일 경로입니다.cat /dev/zero > /pathToFile
이 명령은 Isilon 클러스터에서 쓰기 작업의 처리량을 측정하는 데 도움이 됩니다. (Mac 클라이언트에서dd명령을 실행하면 결과가 일관되지 않을 수 있습니다.) - Activity Monitor의 Network 탭에서 명령 결과를 모니터링합니다.
읽기 테스트
읽기 작업의 처리량을 측정할 때는 쓰기 테스트 중에 생성한 파일에 대해 읽기 테스트를 수행하지 않도록 합니다. 해당 파일이 캐싱되었기 때문에 읽기 테스트 결과가 부정확할 수 있습니다. 대신 캐싱되지 않은 파일의 읽기 작업을 테스트합니다. 클러스터에서 1GB보다 큰 파일을 찾아 읽기 테스트에서 해당 파일을 참조합니다.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 클러스터의 CLI나 UNIX 또는 Linux 클라이언트 컴퓨터에서
dd명령을 사용하여 클러스터에서 파일을 읽습니다. 다음 명령을 실행합니다. 여기서pathToFile은 타겟 파일의 파일 경로입니다.dd if=/pathToLargeFile of=/dev/null bs=1024k
이 명령은 대상 파일을 읽고 파일을 읽는 데 걸린 시간을 보고합니다. - MAC 클라이언트가 있고 추가 분석을 수행하려는 경우
- Activity Monitor를 시작합니다.
- 다음 명령을 실행합니다. 여기서
pathToFile은 타겟 파일의 파일 경로입니다.time cp /pathToLargeFile > /dev/null
이 명령은 Isilon 클러스터에서 읽기 작업의 처리량을 측정하는 데 도움이 됩니다. (Mac 클라이언트에서dd명령을 실행하면 결과가 일관되지 않을 수 있습니다.) - Activity Monitor의 Network 탭에서 명령 결과를 모니터링합니다.
클러스터 처리
재스트라이핑 작업
클러스터의 I/O(Input/Output) 작업(IOPS)을 검토하기 전에 다음을 수행합니다.
- 클러스터에서 실행 중인 작업을 확인합니다. Auto-Balance, Collect 또는 Multi-Scan과 같은 재스트라이핑 작업이 실행 중인 경우 해당 작업이 실행되는 이유와 계속 실행되어야 하는지 여부를 고려하십시오.
- 사용 중인 데이터 유형을 고려합니다. 클라이언트 컴퓨터가 대용량 비디오 파일 또는 VM(Virtual Machine)으로 작동하는 경우 재스트라이핑된 작업에는 정상보다 더 많은 디스크 IOPS가 필요합니다.
- 재스트라이핑 작업을 일시 중지하는 것을 고려하십시오. 이렇게 하면 성능이 크게 향상될 수 있으며 성능 문제에 대한 실행 가능한 단기적 솔루션이 될 수 있습니다.
디스크 I/O
디스크 I/O를 검사하면 특정 디스크가 과도하게 사용되고 있는지 확인하는 데 도움이 될 수 있습니다.
클러스터별
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행하여 디스크 I/O를 확인합니다.
isi statistics pstat
- 이 명령의 출력에서 디스크 IOPS를 클러스터의 총 디스크 수로 나눕니다. 예를 들어 노드당 12개의 드라이브를 호스팅하는 Isilon IQ 12000x 노드를 사용하는 8노드 클러스터의 경우 디스크 IOPS를 96으로 나눕니다.
X-Series 노드 및 NL-Series 노드의 경우 100% 랜덤 워크플로에서 디스크 IOPS가 70 이하이거나 100% 순차 워크플로에서 디스크 IOPS가 140 이하일 것으로 예상해야 합니다. NL-Series 노드는 X-Series 노드보다 RAM이 적고 CPU 속도가 낮기 때문에 X-Series 노드는 더 높은 디스크 IOPS를 처리할 수 있습니다.
노드별 및 디스크별
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행하여 노드별 디스크 IOPS를 확인하면 초과 사용된 디스크를 검색하는 데 도움이 됩니다.
isi statistics query --nodes=all --stats=node.disk.xfers.rate.sum --top
- 다음 명령을 실행하여 디스크 단위로 통계를 쿼리하는 방법을 결정합니다.
isi statistics describe --stats=all | grep disk
대기 중인 작업
디스크가 과도하게 사용되고 있는지 확인하는 또 다른 방법은 클러스터의 각 디스크에 대해 대기하는 작업 수를 확인하는 것입니다. 단일 스트림 SMB 기반 워크플로의 경우 4개의 대기열이 문제를 나타낼 수 있지만 동시 접속 수가 많은 NFS 네임스페이스 작업의 경우 대기열이 더 큽니다.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행하여 클러스터의 각 디스크에 대해 대기 중인 작업 수를 확인합니다.
isi_for_array -s sysctl hw.iosched | grep total_inqueue
- 대기열 작업으로 인한 레이턴시를 확인합니다.
sysctl -aN hw.iosched|grep bios_inqueue|xargs sysctl -D
CPU
CPU 문제는 클라이언트가 클러스터에서 수행하는 작업으로 인해 자주 추적됩니다. 해결을 위해 isi statistics 명령을 사용하여 네트워크 프로토콜 또는 클라이언트 컴퓨터에 의해 카탈로그화된 클러스터에서 수행되는 작업을 확인할 수 있습니다.
- 클러스터의 노드에서 SSH 연결을 열고 "root" 계정을 사용하여 로그인합니다.
- 다음 명령을 실행하여 네트워크에서 수행 중인 작업을 확인하고 이러한 작업 중 가장 많은 시간이 걸리는 작업을 평가합니다.
isi statistics protocol --orderby=TimeAvg --top
이 명령 출력은 클러스터가 클라이언트에 응답하는 데 걸리는 시간별로 구성된 모든 네트워크 프로토콜에 대한 자세한 통계를 제공합니다. 이 명령의 결과는 어떤 작업이 가장 느린지 식별하지 못할 수 있지만 올바른 방향을 가리킬 수 있습니다. - 다음 명령을 실행하여 가장 많이 사용되는 노드의 CPU와 같은 CPU 처리에 대한 자세한 정보를 얻습니다.
isi statistics system --top
- 다음 명령을 실행하여 각 노드에서 CPU 리소스를 가장 많이 사용하는 4개의 프로세스를 가져옵니다.
isi_for_array -sq 'top -d1|grep PID -A4'
Additional Information
다음은 이 주제와 관련하여 관심을 가질만한 권장 리소스입니다.