본문 바로가기
IT

LINUX에서 IRQ분배

by PLEINELUNE 2022. 8. 17.

작업 목적 및 개요 : 기존에는 CPU#0에서 SSL관련 처리를 전담하였으나, SSL처리 관련 CPU 작업을 분산시킴으로써 성능 향상에 목적이 있음

자동으로 분배되는 irqblance의 경우 #1Core 부터 분배되나, 수동으로 적절하게 분배 되는 것이 중요함

작업 시간은 약 10분 내외이며, 즉시 확인 가능

시스템 재기동 없이 운영 중 적용 가능하며, 네트워크 단절이 발생되지 않음



작업 내용 ;

1. SSL가속 관련 드라이버의 IRQ 확인

# cat /proc/interrupts |grep pkp
83: 60 0 0 0 0 0 1 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
85: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
87: 0 0 0 0 0 0 0 0 4 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
89: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
91: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
93: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
95: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
97: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev
99: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge pkp_dev



2. IRQ를 CPU 코어로 분배

# vi tuneirq_pkp.sh
echo 40 > /proc/irq/83/smp_affinity
echo 80 > /proc/irq/85/smp_affinity
echo 100 > /proc/irq/87/smp_affinity
echo 200 > /proc/irq/89/smp_affinity
echo 400 > /proc/irq/91/smp_affinity
echo 800 > /proc/irq/93/smp_affinity
echo 1000 > /proc/irq/95/smp_affinity
echo 2000 > /proc/irq/97/smp_affinity
echo f > /proc/irq/99/smp_affinity


3. rc.local에 등록하여 부팅 때 적용되도록 설정

# vi /etc/rc.local
./root/tuneirq_pkp


4. 정상 분배 유무 확인
# watch -n 1 -d "cat /proc/interrupts |grep pkp"

-> 기존 CPU#0 으로 쏠리던 부분이 고르게 분배되는 것이 확인됨


5. 그 외 NIC 등도 적절하게 IRQ분배를 해주는 것 만으로도 효율적인 리소스 운영 가능

댓글