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

информация о / proc / pid / sched

Не уверен, что это подходящее место для этого вопроса, но вот что:

Я пытаюсь разобраться в файлах / proc / pid / sched и / proc / pid / task / tid / sched для высокопоточного серверного процесса, однако мне не удалось найти хорошее объяснение того, как интерпретировать это файл (здесь всего несколько бит: http://knol.google.com/k/linux-performance-tuning-and-measurement# ). Я предполагаю, что эта запись в procfs связана с более новыми версиями ядра, которые работают с планировщиком CFS?

Дистрибутив CentOS, работающий на версии ядра 2.6.24.7-149.el5rt, с исправлением preempt rt.

Есть предположения?

Дополнительную документацию по файлу / proc / [pid] / sched можно найти в этой статье:

http://lwn.net/Articles/242900/

Посмотрите комментарии. Объясняется большинство полей.

Наверное, стоит почитать "man proc"! Из руководства:

/ proc / [идентификатор] / задача
(начиная с Linux 2.6.0-test6) Это каталог, содержащий по одному подкаталогу для каждого потока в процессе. Имя каждого подкаталога - это числовой идентификатор потока ([tid]) потока (см. Gettid (2)). В каждом из этих подкаталогов есть набор файлов с теми же именами и содержимым, что и в каталогах / proc / [pid]. Для атрибутов, которые используются всеми потоками, содержимое каждого файла в подкаталогах task / [tid] будет таким же, как и в соответствующем файле в родительском каталоге / proc / [pid] (например, в многопоточном процессе , все файлы task / [tid] / cwd будут иметь то же значение, что и файл / proc / [pid] / cwd в родительском каталоге, поскольку все потоки в процессе совместно используют рабочий каталог). Для атрибутов, которые являются разными для каждого потока, соответствующие файлы в разделе task / [tid] могут иметь разные значения (например, различные поля в каждом из файлов task / [tid] / status могут быть разными для каждого потока).

В многопоточном процессе содержимое каталога / proc / [pid] / task недоступно, если основной поток уже завершен (обычно путем вызова pthread_exit (3)).

Итак, в основном понимание / proc / pid / task / означает понимание самого процесса.