Linux Performance Tuning

김재현·2024년 2월 22일
post-thumbnail

* Performance Tuning 이란?

성능 튜닝은 컴퓨팅 리소스 사용률, 데이터 처리량 또는 사용자 환경을 개선하기 위해 시스템 설정을 조정하는 단계이다.
성능 튜닝의 주요 목표는 리소스와 리소스가 작동하는 환경을 활용하여 시스템이 회상의 성능으로 작동하게 만드는 것이다.

성능 튜닝의 개념

1. 튜닝 목표
명확한 목표를 설정하여 성공적인 튜닝 프로세스 후 측정 가능한 이득을 얻을 수 있다.

2. 성능 장애
리소스 또는 장치가 최대 작동 용량에 도달하여 시스템의 전반적인 동작에 영향을 미칠 경우 성능 장애가 발생한다.
성능 장애를 효과적으로 탐지 및 분석하여 문제를 해결한다.

3. 인적 요소
성능 튜닝 목표를 설정할 때 인적 요소를 고려해야 한다.

4. 성능 관리
모든 사용자의 비즈니스 요구를 달성하기 위해 적절한 컴퓨팅 리소스를 사용할 수 있도록 하는 프로세스이다.
그러나 하드웨어 또는 기타 요소의 물리적 특성을 보정하지 않을 경우 사용자의 성능 기대치는 비현실적일 수 있다.

5. 워크로드 최적화
일반적으로 성능 튜닝은 특정 워크로드 유형에 맞는 설정 최적화를 목표로 한다.
그러나 타겟 워크로드 이외의 프로세스는 이러한 설정으로 인해 방해를 받을 수 있다.

6. 처리량 및 대기 시간
가장 일반적인 두 가지 성능 측정값은 처리량과 대기 시간이다.

  • 처리량
    주어진 시간에 리소스에서 전송하거나 처리할 수 있는 데이터 양을 측정한 값

  • 대기 시간
    리소스에서 데이터 전송 또는 처리를 시작하기 위해 기다려야 하는 지연 시간

7. 용량 계획
IT 분야에서 용량 계획은 특정 기간 동안 시스템의 워크로드를 지원하는 데 필요한 리소스를 추정하는 단계이다.

  • 확장성
    시스템 확장 기능은 다양한 워크로드에 신속하게 적응하기 위한 주요 요구 사항 중 하나이다.

  • 제한 사항
    일반적인 성능 지표와 시스템의 에스컬레이션 제한을 포함하여 시스템의 제한 사항을 아는 것이 중요하다.

  • 중요한 리소스
    특정 워크로드에서 가장 많이 사용되거나 중요한 리소스를 파악하는 것이 중요하다.

성능 튜닝 방법론

USE

USE(Utilization Saturation and Errors) 방법은 성능 튜닝 전문가로부터 높은 평가를 받은 방법으로 Bredan Gregg 가 운영 체제 성능을 강의할 때 개발한 방법이다.

주요 개념
1. 개별 리소스를 먼저 식별한 후 각 리소스의 오류, 가용률, 포화 상태를 확인한다.
2. 높은 사용률이나 포화 상태로 인해 성능이 저하되는 하드웨어 리소스를 포함하는 복잡한 시스템에서 가장 효과적이다.
(하드웨어 리소스에 중점을 둠.)
3. 분석 상황이 성능 기반이든, 문제 해결 기반이든 관계없이 먼저 오류를 확인한다.

  • 용어 정의
  1. 도구
    서버에 있는 기능적 하드웨어 장치(CPU, 메모리, 네트워크 인터페이스, 디스크, 컨트롤러)

  2. 사용률
    리소스가 작업 처리에 사용된 평균 시간

  3. 포화 상태
    리소스에 처리할 수 없는 추가 작업이 있는 정도

  4. 오류
    오류 이벤트의 수

성능 결과 해석
잘 알려져 있는 성능 문제를 제외하고 워크로드 요구 사항, 기대치 또는 전반적인 기능 환경에 따라 결과는 달라진다.

  1. 사용률
    전체 사용률(100%)은 일반적으로 성능 장애를 나타낸다.
    사용률이 70%를 초과하면 전반적인 시스템 성능에 영향을 미치는 대기 지연이 더 자주, 확실하게 나타날 수 있다.
    CPU와 같은 기타 시스템 리소스는 거의 언제든 중단(또는 선점)될 수 있으며, 워크로드 관리를 위한 다른 우선 순위를 처리할 수 있다.

  2. 포화 상태
    대기열의 길이나 처리되기 전 대기열에서 대기하는 시간으로 측정된다.

  3. 오류
    0이 아닌 오류 카운터가 계속 증가하는 경우 조사하는 것이 좋다.

시스템에 변경 사항 적용

  1. 기준 설정
    기존 시스템의 지표를 수집한 후 저장하여 나중에 검토할 수 있도록 한다.

  2. 변경하기
    한 번에 하나씩 항목을 변경하고 효과를 측정해야 한다.

  3. 변경 사항의 유효성 확인
    변경 작업을 실행한 후 시스템에서 동일한 테스트 워크로드를 다시 실행한다.

  4. 변경 사항 취소 및 기준과 비교
    변경 사항을 취소하고 기준으로 되돌릴 경우 변경 사항의 유효성을 더욱 확신할 수 있다.

  5. 확정된 변경 사항 적용
    확정된 변경 사항을 적용하고 문서화한다.

0개의 댓글