Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #81, СЕНТЯБРЬ 2005 г.

Путешествие к центру ядра

j1m (j1m@list.ru)

Хакер, номер #081, стр. 081-104-5


Такую важную для многих информацию, как средняя загруженность процессора, можно узнать из файла /proc/loadavg. Многих новичков его содержимое вводит в ступор. На самом деле все просто, хотя и не привычно. Три числа представляют количество заданий (процессов), ждущих своего выполнения за последние 1, 5 и 15 минут. Таким образом, если в среднем за минуту ожидало исполнения менее одного задания, то загруженность составляет около 5-10%, 2-3 задания - уже около 80-90%, 4-5 заданий - 100% загрузка. Многие программы, подсчитывающие загрузку процессора в процентах, получают данные из этого файла.

Время, прошедшее с момента загрузки, находится в /proc/uptime. Файл содержит два числа: общее время и время простоя процессора. Отсчет ведется в секундах. У меня второе число всего на сто меньше первого :).

[что осталось за кадром]

А за кадром у нас сегодня остался псевдофайл /proc/kcore. Он отображает всю физическую память системы в формате core, и поэтому позволяет анализировать внутренние структуры ядра в реальном времени. Для того, чтобы воспользоваться этой возможностью, тебе необходимо загрузить ядро, содержащее отладочную информацию (оно помещается в корень исходников после сборки: /usr/src/vmlinux) и выполнить от рута команду:

$ gdb --core=/proc/kcore

Замечу, что этот файл не будет существовать, если в ядре отключена опция "File systems -> Pseudo filesystems -> /proc/kcore support".

Так же в этой статье я упустил из вида тюнинг ядра посредством /proc/sys (или sysctl) - это тема отдельной статьи.

Шутливое определение BogoMIPS: "Сколько раз в секунду процессор может ничего не делать".

Core-файл - это файл, генерируемый ядром в момент "обрушения" программы (сигналы QUIT, ABRT, SEGV и др.). Он содержит дамп памяти процесса и предназначен для выявления причин произошедшего.

Назад на стр. 081-104-4  Содержание