산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 사물 인터넷 기술

Linux perf로 분산 애플리케이션 프로파일링: 실용 가이드

성숙한 애플리케이션을 최적화하는 건 건초더미에서 바늘 찾기처럼 느껴질 수 있습니다. 실제 성능 병목 현상을 식별하는 가장 좋은 방법은 직관이 아닌 데이터가 결정을 이끌게 하는 것입니다. 실제로는 가장 시간이 많이 소요되는 코드가 가장 덜 명백한 경우가 많습니다.

코드가 느리다고 의심될 때, 수정하기 전에 먼저 증거를 확인합니다.

프로파일링은 그 직관을 측정 가능한 사실로 바꿉니다. 시장에는 수십 개의 프로파일러가 있지만, 멀티스레드 또는 분산 시스템에 적합한 도구를 선택하는 건 어려울 수 있습니다. Callgrind 같은 전통적인 명령어 카운트 프로파일러는 특히 심한 뮤텍스 경합 하에서 타이밍을 왜곡할 수 있습니다. 이들은 벽시계 시간이 아닌 명령어를 측정하기 때문입니다.

반면 통계적 프로파일러는 낮은 오버헤드로 실행 중인 프로그램을 샘플링하므로 복잡하고 동시적인 워크로드에 이상적입니다. Linux의 perf는 이 접근 방식의 대표적인 예입니다.

아래는 perf를 Brendan Gregg의 FlameGraph와 함께 사용하여 분산 애플리케이션의 핫스팟을 정확히 찾아내는 단계별 워크플로입니다. 예제는 RTI Connext 5.3.0의 c/hello_dynamic 샘플을 대상으로 합니다.

1. perf 설치
Ubuntu에서 실행:

sudo apt-get install linux-tools-common linux-tools-3.13.0-107-generic

2. FlameGraph 복제
편리한 위치(예: 홈 디렉토리)에 저장소 복제:

git clone https://github.com/brendangregg/FlameGraph

3. 예제 빌드
rti_workspace/examples/c로 이동하여 디버그 심볼로 컴파일:

export DEBUG=1 make -f makefile_Hello_x64Linux3gcc4.8.2
플랫폼에 맞는 makefile 이름으로 교체하세요.

4. 프로파일링하며 발행자 실행
구독자를 백그라운드에서 시작한 후 perf 실행:

objs/x64Linux3gcc4.8.2/Hello sub & sudo perf record -g objs/x64Linux3gcc4.8.2/Hello pub
짧은 테스트 기간 후 Ctrl+C로 발행자 중지. perf가 perf.out 생성.

5. FlameGraph용 데이터 변환
perf 출력을 접힌 스택 파일로 변환:

perf script -f | ~/FlameGraph/stackcollapse-perf.pl > out.perf-folded
그런 다음 시각적 플레임 그래프 생성:
~/FlameGraph/flamegraph.pl out.perf-folded > perf.svg

6. 결과 검사
웹 브라우저에서 perf.svg 열기. 가로축은 각 함수에서 소요된 시간을 보여주며, 스택된 막대는 호출 스택을 드러냅니다. 막대를 클릭하면 해당 스택으로 확대됩니다. 구독자 없이 발행자 실행 시 그래프의 오른쪽 부분이 제거되어 DDS가 구독자 존재 시에만 데이터를 방출함을 확인할 수 있습니다.

Perf는 더 많은 옵션을 제공합니다: 샘플링 주파수 조정, 커널 코드 제외, 특정 CPU 집중. 팁이나 프로파일링을 단순화하는 보완 도구를 발견했다면 댓글로 공유하세요.

즐거운 프로파일링!

사물 인터넷 기술

  1. 몰리브덴은 다른 원소와 결합할 수 있을까? 합금화와 고온 활용에 대한 전문가 통찰
  2. 이더리움 & 구글 클라우드로 하이브리드 블록체인-클라우드 애플리케이션 구축하기
  3. React Native & AWS로 확장 가능한 서버리스 모바일 앱 구축하기
  4. 유도형 근접 센서: 회로 설계, 기능 및 실용적 응용
  5. 아날로그 vs 디지털 센서: 유형, 응용 및 실용 예시
  6. Microchip, 우주 임무용 Arm 기반 MCU 출시 – COTS부터 방사선 내성/강화 옵션까지 확장 가능
  7. 로우코드 플랫폼으로 IT 병목 해소: 디지털 전환 단순화
  8. 오보 에너지, VCharge 스마트 그리드 인수로 분산 에너지 전략 강화
  9. CNC 우드 라우터: 고품질 가구·도어·악기 제작의 다재다능한 정밀 머신
  10. 의료 분야 AI: 검증된 5가지 실제 적용 사례와 실용적 예시