Yetixx
Yetixx
Server: nginx/1.28.0
System: Linux instance-rr9enuui 6.1.0-15-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.66-1 (2023-12-09) x86_64
User: www (1000)
PHP: 8.0.26
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //proc/thread-self/root/bin/virtio-irq-check.sh
#!/bin/bash
#
# check virtio irq
#   Baidu @2021

function r_net_info(){
    # runtime or statistics
    irq_ctx=`cat /proc/interrupts|grep -E "CPU|PCI-MSI.*edge|xgbe|eth"|grep -E "CPU|mlx5_comp|mlx6_comp|virtio.*(input|output)|virtio.*req|xgbe|eth"`
    cpus=(`echo "$irq_ctx"|sort|grep CPU|xargs`)
    cpus_num=${#cpus[*]}
    for p in `ls -1 --sort=version /proc/irq/|grep [0-9]`; do
	p_path=/proc/irq/$p	
        irq=`basename $p_path`
        irq_hit_count=(`echo "$irq_ctx"|sed 's/^[ \t]*//g'|grep "^$irq:"|xargs`)
        queue_id=`echo ${irq_hit_count[*]}|awk -F ' ' '{print $NF}'`
        [[ -z "$queue_id" ]] && continue

        cpu_hit_detail=""
        for i in `seq 0 $((cpus_num-1))`; do
            hit_count=${irq_hit_count[$((i+1))]}
            [[ $hit_count -eq 0 ]] && continue
            cpu_hit_detail="${cpu_hit_detail} ${cpus[$i]}: $hit_count"
        done
        hit_info=""
        [[ -n "$cpu_hit_detail" ]] && hit_info=", hit count: ${cpu_hit_detail}"
        printf "%20s irq %3d affinity CPU:%7s%s\n" $queue_id $irq `cat $p_path/smp_affinity_list` "$hit_info"
    done
}

r_net_info