29.3. 커널 틱 시간 구성
기본적으로 Red Hat Enterprise Linux 9는 유휴 CPU를 중단하지 않는 틱리스 커널을 사용하여 전력 사용량을 줄이고 새 프로세서가 수면 상태를 활용할 수 있도록 합니다.
Red Hat Enterprise Linux 9는 또한 고성능 컴퓨팅 또는 실시간 컴퓨팅과 같은 대기 시간에 민감한 워크로드에 유용한 동적 틱리스 옵션을 제공합니다. 기본적으로 동적 틱리스 옵션은 비활성화되어 있습니다. cpu-partitioning
TuneD 프로필을 사용하여 isolated_cores
로 지정된 코어의 동적 틱리스 옵션을 활성화하는 것이 좋습니다.
이 절차에서는 동적 틱리스 동작을 수동으로 활성화하는 방법을 설명합니다.
절차
특정 코어에서 동적 틱리스 동작을 활성화하려면
nohz_full
매개변수를 사용하여 커널 명령줄에 코어를 지정합니다. 16개의 코어 시스템에서nohz_full=1-15
커널 옵션을 활성화합니다.# grubby --update-kernel=ALL --args="nohz_full=1-15"
이를 통해 코어
1
에서15
까지 동적 틱 수없는 동작을 가능하게하고 모든 시간 유지를 지정하지 않은 코어 (코어0
)로 이동합니다.시스템이 부팅될 때
rcu
스레드를 대기 시간이 아닌 코어로 수동으로 이동합니다. 이 경우 코어0
:# for i in `pgrep rcu[^c]` ; do taskset -pc 0 $i ; done
-
선택 사항: 커널 명령줄에서
isolcpus
매개변수를 사용하여 특정 코어를 사용자 공간 작업으로부터 분리합니다. 선택 사항: 커널의
write-back bdi-flush
스레드의 CPU 선호도를 하우스키핑 코어로 설정합니다.echo 1 > /sys/bus/workqueue/devices/writeback/cpumask
검증
시스템이 재부팅되면
dynticks
가 활성화되었는지 확인합니다.# journalctl -xe | grep dynticks Mar 15 18:34:54 rhel-server kernel: NO_HZ: Full dynticks CPUs: 1-15.
동적 틱 없는 구성이 제대로 작동하는지 확인합니다.
# perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 sleep 3
이 명령은 CPU 1을 유휴 상태로 지정하는 동안 CPU 1이 3초 동안 켜지도록 하는 동안 CPU의 틱을 측정합니다.
기본 커널 타이머 설정은 일반 CPU에서 약 3100개의 틱을 보여줍니다.
# perf stat -C 0 -e irq_vectors:local_timer_entry taskset -c 0 sleep 3 Performance counter stats for 'CPU(s) 0': 3,107 irq_vectors:local_timer_entry 3.001342790 seconds time elapsed
동적 틱리스 커널이 구성된 경우, 약 4개의 틱을 볼 수 있습니다.
# perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 sleep 3 Performance counter stats for 'CPU(s) 1': 4 irq_vectors:local_timer_entry 3.001544078 seconds time elapsed
추가 리소스
-
perf(1)
및cpuset(7)
도움말 페이지 - 모든 nohz_full 커널 매개변수 Red Hat Knowledgebase 문서 (Red Hat Knowledgebase)
- sysfs의 "isolated" 및 "nohz_full" CPU 정보를 확인하는 방법은 무엇입니까? Red Hat Knowledgebase 문서 (Red Hat Knowledgebase)