Skip to content

TheCakeMan1/rkmon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rkmon — Linux Kernel Monitoring Module

rkmon — это модуль ядра Linux, предоставляющий интерфейс для получения информации о состоянии процессора, частот, памяти и сетевых интерфейсов в режиме реального времени.
Модуль создаёт символьное устройство и отдаёт агрегированные данные в удобном текстовом формате, а также поддерживает ioctl-запросы.

Возможности

CPU

  • Загрузка каждого ядра (в процентах)
  • Текущая частота (Гц)
  • Поддержка до 16 CPU

Память

  • Общий объём RAM
  • Свободная RAM

Сеть

  • Список сетевых интерфейсов
  • MAC-адрес
  • IPv4 / IPv6
  • Статус линка
  • RX/TX пакеты и ошибки
  • RX/TX скорость (KB/s)
  • ioctl-интерфейс для запроса данных по интерфейсу

Символьное устройство

При загрузке модуля автоматически регистрируется символьное устройство:

/dev/rkmon

Чтение из устройства возвращает многострочный отчёт:

  • количество CPU
  • загрузка каждого CPU
  • частоты CPU
  • память (total/free)
  • список сетевых интерфейсов и их параметры

IOCTL API

Установка частоты обновления

ioctl(fd, RKMON_SET_UPDATE_RATE, int ms)

Пределы:

min: 50 ms

max: 5000 ms

Получение информации о сетевом интерфейсе

struct rkmon_net_request req;
ioctl(fd, RKMON_GET_NETINFO, &req);

Получение информации о процессорах

struct rkmon_cpu_request req;
ioctl(fd, RKMON_GET_CPUINFO, &req);

Структуры определены в rkmon_uapi.h.

Файловая структура

Основные файлы:

rkmon_dev.c — реализация символьного устройства и логики вывода

cpu_update.c / .h — мониторинг CPU

mem_update.c / .h — мониторинг памяти

network_update.c / .h — мониторинг сети

rkmon_uapi.h — интерфейс взаимодействия ядро → userspace

Лицензия GPLv2

Автор: Alexey Kuznetsov GitHub: TheCakeMan1


NUM_CPU: 8
LOADS_CPU: 0 0 0 0 0 0 0 0
FREQ_CPU: 1800000 1800000 1800000 1800000 2256000 2256000 2256000 2256000
TOTAL/FREE MEM: 16335248 10653056

NUM_INTERFACE: 2
NET: lo
LINC: 1
MAC: 00:00:00:00:00:00
IPv4: 127.0.0.1
IPv6: 0000:0000:0000:0000:0000:0000:0000:0001
RX/packets/errors: 139089 828043 0
TX/packets/errors: 139089 828043 0
NET: enP3p49s0
LINK: 1
MAC: c0:74:2b:fd:ce:9b
IPv4: 192.168.27.199
IPv6: fe80:0000:0000:0000:3032:7090:84fd:6f11
RX/packets/errors: 15819 557604 0
TX/packets/errors: 18014398509463776 469211 0

Installation

Смотри: INSTALL.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published