Назад | Перейти на главную страницу

Как я могу узнать, что irqbalance что-то делает?

Я просмотрел документы по настройке сервера Linux, в которых упоминается установка irqbalance (http://www.irqbalance.org/) в системах SMP. Сейчас я смотрю на него на четырехъядерной системе, и хотя "ps axf" может сказать мне, что он работает, я не вижу никакой статистики или информации любого рода о том, повлияло ли / как это на систему.

Кто-нибудь знает, где искать?

На основе ответа evildeed запущен sudo cat /proc/irq/*/smp_affinity должен вам сказать. Если вы получите больше, тогда один ответ: он должен работать.

Поскольку вывод представляет собой целочисленное преобразование битовой маски, это может быть трудно понять для непрограммистов.

например:

  • Связан с cpu0 - 1
  • Связан с cpu1 - 2
  • Связан с cpu0 и / или cpu1 - 3
  • Привязан к процессору3,4,7 - 282

Вы можете получить общее представление о том, делает ли он что-нибудь, выполнив cat / proc / interrupts и посмотрев, создаются ли процессы, которые вы пытались изолировать, на создании прерываний на процессорах, которые должны запускать ваш высокоприоритетный процесс.

в исходном коде они несколько раз ссылаются на / proc. Может быть, вы найдете там свои ответы. корень @ [/ usr / local / src / irqbalance-0.55] egrep -ri "proc | sys" *

activate.c:                     sprintf(buf, "/proc/irq/%i/smp_affinity", irq->number);
cpumask.h: * set of CPU's in a system, one bit position per CPU number.
cpumask.h: * The following particular system cpumasks and operations manage
cpumask.h: *  be plugged in at anytime during the life of that system boot.
cpumask.h:int highest_possible_processor_id(void);
cputree.c: * This file contains the code to construct and manipulate a hierarchy of processors,
cputree.c: * cache domains and processor cores.
cputree.c:#include <sys/types.h>
cputree.c:      dir = opendir("/sys/devices/system/cpu");
cputree.c:                      sprintf(new_path, "/sys/devices/system/cpu/%s", entry->d_name);
irqbalance.c:#include <sys/time.h>
irqbalance.c:   /* On single core UP systems irqbalance obviously has no work to do */
irqbalance.c:   /* On dual core/hyperthreading shared cache systems just do a one shot setup */
irqbalance.c:   parse_proc_interrupts();
irqbalance.c:   parse_proc_interrupts();
irqbalance.c:           parse_proc_interrupts();
irqbalance.c:           /* cope with cpu hotplug -- detected during /proc/interrupts parsing */
irqbalance.h:extern void parse_proc_interrupts(void);
irqlist.c:#include <sys/types.h>
irqlist.c: * This function classifies and reads various things from /proc about a specific irq
irqlist.c:      sprintf(buf, "/proc/irq/%i", number);
irqlist.c:                      sprintf(buf, "/proc/irq/%i/smp_affinity", number);
Makefile:LIBS=bitmap.o irqbalance.o cputree.o  procinterrupts.o irqlist.o placement.o activate.o network.o powermode.o numa.o classify.o
network.c:#include <sys/ioctl.h>
network.c:        sprintf(buffer,"/sys/bus/pci/devices/%s/irq", driver.bus_info);
network.c:      file = fopen("/proc/net/dev", "r");
numa.c:#include <sys/types.h>
numa.c: dir = opendir("/sys/bus/pci/devices");
numa.c:         sprintf(line,"/sys/bus/pci/devices/%s/irq", entry->d_name);
numa.c:         sprintf(line,"/sys/bus/pci/devices/%s/class", entry->d_name);
numa.c:         sprintf(line,"/sys/bus/pci/devices/%s/local_cpus", entry->d_name);
numa.c: * Ethernet gets the type via /proc/net/dev; in addition down'd interfaces
powermode.c:    file = fopen("/proc/stat", "r");
powermode.c:    dummy = strtoull(c, &c, 10); /* system */
procinterrupts.c:void parse_proc_interrupts(void)
procinterrupts.c:       file = fopen("/proc/interrupts", "r");