Навигация / Раздел

Устройство Linux: процессы, память, namespaces и cgroups

20 разборов интерфейсов ядра для диагностики: выберите процесс, прочитайте счётчики, проверьте изоляцию и ограничения ресурсов, разберите результат наблюдения.

Начальный5 минОбщие принципы Linux

Выберите вопрос к системе

Если сведения относятся к неожиданному процессу, начните с /proc/self. Если цифры памяти или нагрузки кажутся противоречивыми, переходите к счётчикам. Если одинаковый путь даёт разные результаты, сравните пространства имён и монтирования. Ограничения конкретного приложения исследуйте после определения его cgroup.

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

Сначала объект и единицы, затем вывод

Примеры выполняются в собственной Linux-системе; интерактивный терминал сайта не моделирует procfs, sysfs и cgroups. Перед чтением выберите PID или проверенный каталог группы. Не подставляйте в команды случайные пути и не меняйте системные настройки ради повторения учебных чисел.

Записывайте область наблюдения, единицы и интервал вместе с результатом. Два снимка разных процессов не образуют динамику одного приложения. Показатели всей машины и бюджет контейнера также требуют раздельного объяснения. Если поле отсутствует, это ограничение данных, которое нужно выяснить до расчёта.

Наблюдение за выбранным процессом

Устройство Linux

/proc/self: какой процесс вы наблюдаете при чтении

Разберите различие /proc/self и /proc/$$, выберите PID оболочки и получите повторяемое наблюдение без случайной подмены процесса утилитой чтения.

Средний · 8 мин
Устройство Linux

/proc/PID/status: состояние, идентификаторы и память

Прочитайте status выбранного процесса: отличите PID от PPid, сон от зависания и виртуальный размер от резидентной памяти; проверьте вывод по именам полей.

Средний · 8 мин
Устройство Linux

/proc/PID/cmdline: границы аргументов и нулевые байты

Исследуйте аргументы процесса без потери границ: прочитайте NUL-разделённый cmdline в Bash и объясните, почему эта строка не является журналом запуска.

Средний · 8 мин
Устройство Linux

/proc/PID/environ: начальное окружение без утечки секретов

Проверьте одну учебную переменную в начальном окружении процесса. Разберите NUL-разделители и отличие environ от текущих переменных работающей программы.

Средний · 8 мин
Устройство Linux

/proc/PID/fd: куда направлены открытые дескрипторы

Исследуйте stdin, stdout и stderr через ссылки procfs. Отличите номер дескриптора от пути, распознайте pipe и socket и не прочитайте чужой поток случайно.

Средний · 8 мин
Устройство Linux

/proc/PID/maps: как читать области виртуальной памяти

Разберите адреса, права и файловые отображения в maps. Научитесь отличать размер области от резидентной памяти и выбирать следующий шаг измерения.

Средний · 8 мин

Ограничения и системные счётчики

Устройство Linux

/proc/PID/io: логические байты и обращения к хранилищу

Сравните rchar и read_bytes, снимите два показания счётчиков I/O и оцените разницу без смешения кеша, системных вызовов и реального хранилища.

Средний · 8 мин
Устройство Linux

/proc/PID/limits: ограничения конкретного процесса

Проверьте soft и hard limits работающего процесса. Отличите предел от текущего расхода и настройки своей оболочки от ограничений запущенного сервиса.

Средний · 8 мин
Устройство Linux

/proc/meminfo: доступная память, кеш и swap

Прочитайте MemFree и MemAvailable без ложного вывода о нехватке RAM. Сопоставьте кеш и swap, сохранив единицы и область действия наблюдения.

Средний · 8 мин
Устройство Linux

/proc/uptime: время работы и суммарный простой CPU

Разберите два числа uptime, объясните большой суммарный idle на многоядерной системе и не перепутайте время ядра со временем работы службы.

Средний · 8 мин
Устройство Linux

/proc/loadavg: очередь задач без подмены процентом CPU

Прочитайте интервалы load average и дробь текущих задач. Разберите высокую нагрузку при ожидании I/O и выберите подходящую следующую проверку.

Средний · 8 мин
Устройство Linux

/proc/stat: расчёт долей CPU по двум снимкам

Разберите накопленное время CPU в proc/stat. Рассчитайте долю за интервал, исключите повторный учёт guest и явно укажите трактовку idle и iowait.

Средний · 8 мин

Представление системы и время ожидания

Устройство Linux

/proc/PID/mountinfo: монтирования глазами процесса

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

Средний · 8 мин
Устройство Linux

/sys: объекты ядра, классы устройств и ссылки sysfs

Исследуйте связь /sys/class и /sys/devices на примере loopback. Отличите атрибуты ядра от обычных файлов и осматривайте sysfs без изменения настроек.

Средний · 8 мин
Устройство Linux

Namespaces Linux: сравнение пространств двух процессов

Сравните net, mnt и user namespaces через procfs. Установите границы вывода: общий net namespace не означает общие файлы, права или отдельное ядро.

Средний · 8 мин
Устройство Linux

PSI Linux: ожидание CPU, памяти и I/O по времени

Прочитайте /proc/pressure, отличите some от full и проценты от микросекунд total. Свяжите давление ресурсов с задержкой нагрузки без ложной диагностики.

Средний · 8 мин

Бюджеты групп процессов

Устройство Linux

Cgroup процесса: принадлежность, версия и видимый путь

Найдите cgroup выбранного PID, отличите v2 от legacy-записей и сопоставьте путь с монтированием, не предполагая одинаковую структуру внутри контейнера.

Средний · 8 мин
Устройство Linux

Память cgroup v2: current, high, max и события OOM

Сопоставьте расход памяти группы с high и max, проверьте прирост memory.events и отличите ограничение контейнера от запаса RAM всей машины.

Средний · 8 мин
Устройство Linux

CPU cgroup v2: квота cpu.max и признаки throttling

Прочитайте квоту и период cpu.max, рассчитайте эквивалент CPU и проверьте изменение cpu.stat, не выдавая ограничение за гарантию процессорного времени.

Средний · 8 мин
Устройство Linux

Лимит задач cgroup v2: pids.current, max и events

Проверьте предел задач группы при отказе fork или создания потока. Отличите количество задач от номера PID и исследуйте рост событий без нагрузочного теста.

Средний · 8 мин

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация