성능 및 기능 최적화

완료됨

최상의 크기 조정, 네트워킹 및 관리 사례를 Azure Linux VM 배포 계획에 통합한 후에는 성능과 기능을 고려합니다. 이 단원에서는 Azure Linux VM 배포를 위해 네트워크와 스토리지 리소스를 최적화하는 방법을 설명합니다.

네트워크 성능 최적화

Azure Linux VM에 대한 네트워크 성능을 최적화하기 위해 커널 기반 네트워크 최적화를 사용하고 가능한 경우 가속화된 네트워킹을 구현할 수 있습니다.

커널 기반 네트워크 최적화

2017년 9월 이후에 릴리스된 Linux 커널에는 Azure Linux VM이 더 높은 네트워크 처리량을 달성할 수 있는 네트워크 최적화 옵션이 포함되어 있습니다. 최신 Linux 커널을 사용함으로써 상당한 처리량 성능을 얻을 수 있습니다.

신규 및 기존 Azure VM에도 최신 LIS(Linux Integration Services)를 설치하면 이점을 얻을 수 있습니다. 처리량 최적화는 버전 4.2부터 시작하는 LIS의 일부이며, 후속 버전에는 추가 개선 사항이 포함되어 있습니다.

가속된 네트워킹

가속화된 네트워킹을 구현하여 대기 시간을 최소화하고 처리량을 최대화하며 CPU 사용률을 낮출 수 있습니다. 가속화된 네트워킹은 호스트 하드웨어의 SR-IOV(단일 루트 I/O 가상화) 기능을 사용하여 네트워크 성능을 향상합니다.

가속화된 네트워킹을 사용하지 않는 경우 VM에서 들어오고 나가는 모든 네트워킹 트래픽이 호스트와 가상 스위치를 통과해야 합니다. 가속화된 네트워킹을 사용하는 경우 VM의 네트워크 인터페이스에 도착한 네트워크 트래픽이 호스트를 우회하고 VM으로 바로 전달됩니다.

가속 네트워킹은 VM에서 활성화되어 있을 때만 적용됩니다. 이 기능에서 최상의 결과를 얻으려면 동일한 가상 네트워크에 연결된 Azure VM에서 사용합니다. 가상 네트워크 또는 하이브리드 시나리오 통신 시 이 기능은 전체 대기 시간에 미치는 영향을 최소화합니다.

Azure는 vCPU가 2개 이상의 있는 대부분의 범용 및 컴퓨팅 최적화 인스턴스 규모에서 가속화된 네트워킹을 지원합니다. 하이퍼스레딩을 사용하는 VM 인스턴스는 vCPU가 4개 이상 있는 인스턴스에서 가속화된 네트워킹을 지원합니다.

스토리지 성능 최적화

모든 Azure Linux VM에는 적어도 다음 두 개의 가상 디스크가 있습니다.

  • /dev/sda(으)로 레이블이 지정된 OS 디스크는 최대 용량이 MBR(마스터 부트 레코드) 형식의 디스크에 대해 최대 4TiB(테비바이트) 또는 GPT(GUID 파티션 테이블) 형식의 디스크에 대해 2TiB입니다. Azure VM을 프로비전하는 데 사용하는 이미지가 기본 크기를 결정합니다.

    비운영 체제 워크로드 실행보다는 빠른 부팅에 최적화되어 있으므로 OS 디스크에 데이터를 저장하거나 애플리케이션을 설치하지 않도록 합니다.

  • /dev/sdb(으)로 레이블이 지정되고 /mnt에 탑재된 임시 디스크는 임시 스토리지를 제공합니다. 디스크의 크기와 성능은 VM 크기에 따라 달라지며, 주 목적은 스왑 파일을 저장하는 것입니다.

    • 임시 디스크는 삭제하거나 쉽게 다시 만들 수 있는 데이터의 단기 스토리지 역할을 합니다. 크기 조정, 재배포 또는 다시 시작과 같은 작업에 걸쳐 계속 사용하는 파일은 임시 디스크에 저장하지 않도록 합니다.

    • 스왑 파일에 대한 최적의 구성을 구현하려면 이를 지원하는 이미지에 cloud-init를 사용합니다. cloud-init을 지원하지 않는 이미지에는 Azure VM Linux 에이전트를 사용합니다.

가상 데이터 디스크

데이터를 저장하고 애플리케이션을 설치하기 위해 가상 디스크를 만들어 Azure VM에 연결하고 OS에 탑재할 수 있습니다. 스토리지 및 IOPS(초당 입출력) 요구 사항에 따라 필요 시 디스크를 더 추가할 수 있습니다. 다음 고려 사항에 유의하세요.

  • Azure VM에 연결할 수 있는 최대 디스크 수는 VM의 크기에 따라 달라집니다.
  • Azure VM이 지원하는 최대 IOPS는 디스크의 집계 처리량뿐만 아니라 VM의 크기로 결정되는 VM의 최대 IOPS 처리량에 따라 달라집니다. 유효 처리량은 두 값 중 낮은 값입니다.

Azure VM에 대한 스토리지를 제공하기 위해 Azure 관리 블록 수준 스토리지 볼륨을 사용할 수 있습니다. Azure 관리 디스크는 특정 고객 시나리오를 해결하기 위한 다음 5가지 디스크 유형을 지원합니다.

  • 울트라 SSD: SAP HANA와 같은 I/O 집약적 워크로드, 최상위 계층 데이터베이스(예: SQL, Oracle) 및 기타 트랜잭션 헤비 워크로드에 적합합니다.
  • 프리미엄 SSD(반도체 드라이브) v2: 낮은 대기 시간, 높은 IOPS 및 높은 처리량이 지속적으로 요구되는 프로덕션 및 성능이 중요한 워크로드에 적합합니다.
  • 프리미엄 SSD: 프로덕션 및 성능에 중요한 워크로드에 적합합니다.
  • 표준 SSD: 웹 서버, 사용 빈도가 낮은 엔터프라이즈 애플리케이션, 개발 또는 테스트 시나리오에 적합합니다.
  • 표준 HDD(하드 디스크 드라이브): 자주 사용하지 않는 백업 및 중요하지 않은 데이터에 적합합니다.

프리미엄 SSD의 쓰기 장벽

캐시가 ReadOnly 또는 None(으)로 설정된 프리미엄 SSD 디스크에서 최고 IOPS를 달성하려면 Linux에서 파일 시스템을 탑재하는 동안 쓰기 장벽을 사용하지 않도록 설정합니다. Premium Storage 백업 디스크에 쓰기는 이러한 캐시 설정에 대해 지속되기 때문에 장벽이 필요하지 않습니다. 캐싱이 Read/Write(으)로 설정된 경우에는 쓰기 내구성을 보장하기 위해 장벽을 활성화합니다.

  • reiserFS 파일 시스템을 사용하는 경우 탑재 옵션 barrier=none을(를) 사용하여 장벽을 비활성화합니다.
  • ext3/ext4를 사용하는 경우 탑재 옵션 barrier=0을(를) 사용하여 장벽을 비활성화합니다.
  • XFS를 사용하는 경우 탑재 옵션 nobarrier을(를) 사용하여 장벽을 비활성화합니다.

프리미엄 SSD의 I/O 예약 알고리즘

Linux 커널은 요청을 다시 정렬할 두 개의 디스크 I/O 스케줄러 집합을 제공합니다. 하나는 이전의 blk 하위 시스템용이고 다른 하나는 최신 blk-mq 하위 시스템용입니다. Azure 프리미엄 스토리지를 사용하는 경우 예약 결정을 기본 가상화 플랫폼으로 전달하는 스케줄러를 선택합니다.

  • blk 하위 시스템을 사용하는 Linux 커널의 경우 noop 스케줄러를 선택합니다.
  • blk-mq 하위 시스템을 사용하는 Linux 커널의 경우 none 스케줄러를 선택합니다.

다중 디스크 구성

워크로드에 단일 디스크가 제공할 수 있는 것보다 더 많은 IOPS가 필요한 경우 여러 디스크를 결합하는 소프트웨어 RAID(Redundant Array of Independent Disks) 구성을 사용합니다. Azure는 스토리지 패브릭 레이어에서 디스크 복원력을 제공하기 때문에 RAID-0 스트라이프를 구현하여 성능에 집중할 수 있습니다.

대안으로, LVM(논리 볼륨 관리자)을 설치하고 이를 사용하여 여러 가상 디스크를 단일 스트라이프 논리 스토리지 볼륨으로 결합할 수 있습니다. 이 구성에서는 읽기 및 쓰기가 RAID-0와 유사한 볼륨 그룹에 포함된 여러 디스크에 배포됩니다. 성능상의 이유로 읽기 및 쓰기가 연결된 모든 데이터 디스크를 사용하도록 논리 볼륨을 스트라이프할 수도 있습니다.