|
Модераторы: xvr |
|
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
всем доброго утра.
заранее предупреждаю, что в системном программировании я на знаток, посему прошу не придираться к неправильным формулировкам. просто поправьте. спасибо. нужен монитор указанного процесса с частотой замеров от 1 мс и выше. если есть возможность выполнять выборки чаще чем 1 мс - то это еще лучше. так же, нужна возможность создавать график в виде графического файла, или чего-либо что можно визуализировать. конкретно интересует мониторинг следующих значений: 1. пользовательское время. 2. системное время(время ядра?). 3. время проведенное в ожидании. 4. по пункту 3, нужна информация о том, в ожидании чего. (есть ли возможность узнать, висел ли процесс на мьтексах/файловом_IO/сетевом_IO ?) 5. память процесса. т.к. ничего готового не нашел, придется кодить руками. первый вопрос: с какой частотой обновляется /proc/pid/stat ? как определить эту частоту? насколько я понял, состояние процесса описывает структура task_struct. возможно, если в /proc/pid/stat информация обновляется с недостаточной частотой, то возможно ли получить эту структуру прям из ядра с большей частотой? понятно, что нужен модуль ядра. второй вопрос: согласно "man 5 proc", пользовательское время, это поле utime, а системное время это stime?
еще не очень понятно назначение cutime и cstime. cutime - это суммарное время в режиме пользователя для текущего процесса и его потоков? или кто такие в данном случае могут быть "его потомки"? cstime - тут вообще не понятно. это значение времени именно ожидания завершения потомков? т.е. основной процесс пытается завершиться, но не может из-за потомков, и ждет их? т.е. это именно об этом хотят сказать? и это ни то же самое что и "3. время проведенное в ожидании." ? и скажите, есть ли возможность согласно пункту 4(нужна информация о том, в ожидании чего. (есть ли возможность узнать, висел ли процесс на мьтексах/файловом_IO/сетевом_IO ?)) получить информацию? задайте направление, пожалуйста. спасибо. |
|||
|
||||
newbee |
|
|||
Бревно Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: нет Всего: 19 |
AFAIK /proc никогда не обновляется, это просто интерфейс к системам ядра, поэтому при каждом запросе будет выдаваться актуальная информация, никакого кеширования. Но тут другой вопрос, не съешь ли ты сам все процессорное время постоянным парсингом кучи строк? Возможно лучше брать эту информацию непосредственно из ядра.
-------------------- You're face to face With man who sold the world |
|||
|
||||
boostcoder |
|
||||||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
дело в том, что я закодил такой тест:
если его выполнить, то в выводе видно, что обновленные данные поступают не постоянно. такое ощущение, что несколько выборок получают реальные данные, остальные же, выводят последний полученный результат.
если эта тулза-монитор выполняющаяся отдельным процессом что-то там и будет "кушать", то главное чтоб на замеряемом процессе это не сказалось. и по идее вроде как не должно. |
||||||
|
|||||||
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
||||
|
||||
rumit7 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 16.6.2011 Репутация: 1 Всего: 7 |
Здравствуйте! Вроде здесь есть немного, может пригодится.. Это сообщение отредактировал(а) rumit7 - 23.10.2011, 19:56 |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
кэширования тут нет значит так ядро обновляет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
спасибо! то что нужно! |
|||
|
||||
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
кто-нибудь подскажет по следующим пунктам?
|
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
По п4 родной ps смотрит на адрес ожидания в ядре (это где то есть в /proc/...) и на символы ядра (если найдет). По ним находит имя функции ядра, где висит процесс. А дальше руками
|
|||
|
||||
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
адрес чего? функции? ну допустим, ps таким образом узнает адрес. но как ps по адресу узнает имя функции? а что нужно сделать, чтоб получить более детальную информацию? а это что такое? |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
boostcoder |
|
|||
pattern`щик Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
уже смотрю. спасибо. вот теперь понял. спасибо еще раз. буду ковыряться. |
|||
|
||||
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |