#!/bin/bash #program path or install dir IF=enp0s8 CPU_NR=3 PRIO=90 OLDDIR=$(pwd) reset() { #standard on most systems. ondemand -> Dynamic CPU-Freq. echo ondemand >/sys/devices/system/cpu/cpu$CPU_NR/cpufreq/scaling_governor cd /sys/devices/system/cpu/cpu$CPU_NR/cpuidle for i in * do #~disable sleep state echo 0 >$i/disable done phy=$IF #get interface name #get pid's from interface irq for i in `ps ax | grep -v grep | grep $phy | sed "s/^ //" | cut -d" " -f1` do #retrive or set a process's CPU affinity taskset -pc 0-$CPU_NR $i >/dev/null #manipulate the real-time attributes of a process -p priority -f scheduling policy to SCHED_FIFO chrt -pf 50 $i done #distribute hardware interrupts across processsors on a muliprocessor system systemctl start irqbalance } trap reset ERR systemctl stop irqbalance phy=$IF for i in `ps ax | grep -v grep | grep $phy | sed "s/^ //" | cut -d" " -f1` do taskset -pc $CPU_NR $i >/dev/null chrt -pf $PRIO $i done cd /sys/devices/system/cpu/cpu$CPU_NR/cpuidle for i in `ls -1r` do echo 1 >$i/disable done echo performance >/sys/devices/system/cpu/cpu$CPU_NR/cpufreq/scaling_governor cd $OLDDIR taskset -c $CPU_NR chrt -f $PRIO $1