4장. tuna
Tuna 툴을 사용하여 스케줄러 튜닝 가능 항목을 조정하고 스레드 우선 순위, IRQ 처리기를 조정하며 CPU 코어와 소켓을 분리할 수 있습니다. Tuna는 튜닝 작업 수행의 복잡성을 줄이는 것을 목표로 합니다.
tuna 패키지를 설치한 후 인수 없이 tuna 명령을 사용하여 Tuna 그래픽 사용자 인터페이스(GUI)를 시작합니다. tuna -h 명령을 사용하여 사용 가능한 CLI(명령줄 인터페이스) 옵션을 표시합니다. tuna(8) 도움말 페이지는 작업과 수정자 옵션을 구분합니다.
Tuna GUI 및 CLI는 동등한 기능을 제공합니다. GUI는 문제를 식별하는 데 도움이 되도록 한 화면에 CPU 토폴로지를 표시합니다. Tuna GUI를 사용하면 실행 중인 스레드를 변경하고 변경 결과를 즉시 확인할 수 있습니다. CLI에서 Tuna는 여러 명령줄 매개 변수를 수락하고 순차적으로 처리합니다. 애플리케이션 초기화 스크립트에서 이러한 명령을 구성 명령으로 사용할 수 있습니다.
중요
tuna --save=filename 명령을 설명 파일 이름과 함께 사용하여 현재 구성을 저장합니다. 이 명령은 Tuna가 변경할 수 있는 모든 옵션을 저장하지 는 않지만 커널 스레드 변경 사항만 저장합니다. 변경 시 현재 실행되지 않는 프로세스는 저장되지 않습니다.
4.1. Tuna를 사용하여 시스템 검토
변경을 수행하기 전에 Tuna를 사용하여 현재 시스템에서 수행되는 작업을 표시할 수 있습니다.
현재 정책 및 우선순위를 보려면 tuna --show_threads 명령을 사용합니다.
#
tuna --show_threads
thread
pid SCHED_ rtpri affinity cmd
1 OTHER 0 0,1 init
2 FIFO 99 0 migration/0
3 OTHER 0 0 ksoftirqd/0
4 FIFO 99 0 watchdog/0
PID에 해당하거나 명령 이름과 일치하는 특정 스레드만 표시하려면
--show_threads
앞에 --threads
옵션을 추가합니다.
#
tuna --threads=pid_or_cmd_list --show_threads
pid_or_cmd_list 인수는 쉼표로 구분된 PID 또는 명령 이름 패턴 목록입니다.
현재 인터럽트 요청(IRQ) 및 선호도를 보려면 tuna --show_irqs 명령을 사용합니다.
#
tuna --show_irqs
# users affinity 0 timer 0 1 i8042 0 7 parport0 0
IRQ 번호 또는 IRQ 사용자 이름과 일치하는 특정 인터럽트 요청만 표시하려면
--show_irqs
앞에 --irqs
옵션을 추가합니다.
#
tuna --irqs=number_or_user_list --show_irqs
number_or_user_list 인수는 쉼표로 구분된 IRQ 번호 또는 사용자 이름 패턴 목록입니다.