검색

A.11. VDSM 후크 예

download PDF

이 섹션에서 제공하는 예제 후크 스크립트는 Red Hat에서 엄격하게 지원하지 않습니다. 소스와 관계없이 시스템에 설치하는 모든 후크 스크립트가 환경에 맞게 철저하게 테스트되었는지 확인해야 합니다.

예 A.5. NUMA 노드 튜닝

목적:

이 후크 스크립트를 사용하면 numaset 사용자 지정 속성을 기반으로 NUMA 호스트에서 메모리 할당을 조정할 수 있습니다. 사용자 지정 속성이 설정되지 않은 위치입니다.

구성 문자열:

numaset=^(interleave|strict|preferred):[\^]?\d+(-\d+)?(,[\^]?\d+(-\d+)?)*$

사용된 정규 표현식을 사용하면 지정된 가상 시스템의 numaset 사용자 지정 속성에서 할당 모드(인터리브,엄격한,기본 설정)와 사용할 노드 모두를 지정할 수 있습니다. 두 값은 콜론(:)으로 구분됩니다. 정규 표현식을 사용하면 다음과 같이 노드 세트를 지정할 수 있습니다.

  • 특정 노드(numaset=strict:1) 가 노드 1만 사용됨을 지정합니다.
  • 사용 가능한 노드 범위(numaset=strict:1-4, 노드가 1-4로 사용됨) 또는
  • (numaset=strict:^3 ) 특정 노드가 사용되지 않는 경우 노드 3을 사용하지 않도록 지정합니다.
  • 위의 쉼표로 구분된 조합(numaset=strict:1-4,6)은 노드를 1에서 4로, 6을 사용하도록 지정합니다.

스크립트:

/usr/libexec/vdsm/hooks/before_vm_start/50_numa

#!/usr/bin/python

import os
import sys
import hooking
import traceback

'''
numa hook
=========
add numa support for domain xml:

<numatune>
    <memory mode="strict" nodeset="1-4,^3" />
</numatune>

memory=interleave|strict|preferred

numaset="1" (use one NUMA node)
numaset="1-4" (use 1-4 NUMA nodes)
numaset="^3" (don't use NUMA node 3)
numaset="1-4,^3,6" (or combinations)

syntax:
    numa=strict:1-4
'''

if os.environ.has_key('numa'):
    try:
        mode, nodeset = os.environ['numa'].split(':')

        domxml = hooking.read_domxml()

        domain = domxml.getElementsByTagName('domain')[0]
        numas = domxml.getElementsByTagName('numatune')

        if not len(numas) > 0:
            numatune = domxml.createElement('numatune')
            domain.appendChild(numatune)

            memory = domxml.createElement('memory')
            memory.setAttribute('mode', mode)
            memory.setAttribute('nodeset', nodeset)
            numatune.appendChild(memory)

            hooking.write_domxml(domxml)
        else:
            sys.stderr.write('numa: numa already exists in domain xml')
            sys.exit(2)
    except:
        sys.stderr.write('numa: [unexpected error]: %s\n' % traceback.format_exc())
        sys.exit(2)
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.