![]() |
|
Модераторы: xvr |
![]()
|
|
| duken |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2008 Репутация: нет Всего: нет |
надо для системы контроля нагрузки (впринципе можно и с OpenSource-версией, не велика ценность/уникальность)
надо функцию на C (либо алгоритм на русском никак не могу найти как это сделать... ни алгоритма, ни кода... :( Это сообщение отредактировал(а) duken - 7.5.2008, 18:23 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
Есть такая штука под Unix-like - ps называется. Она как раз по pid и выдаёт % использования процессора. Код открыт - бери и смотри.
Ещё вариант - посмотри в /proc/<pid> - там вся инфа по процессу и есть, найти в документации только, что именно оттуда брать. |
|||
|
||||
| duken |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2008 Репутация: нет Всего: нет |
JackYF, в /proc/pid/ сам бы порылся сначала, там нифига нету!
читать блин научись
это значит что я нашёл где посмотреть память, название и прочее, это в /proc/<pid>/status а вот как узнать процент CPU/количество мегагерц - нигде нету. а исходники top это вообще хрень полная, каждая функция размазана по всему файлу, да ещё и не по одному кажись... нереально что-то найти, найти то чо надо - тем более... а сам ps кстати процент CPU не выдаёт! может кто-нибудь всё-таки знает? Добавлено через 1 минуту и 11 секунд JackYF, в каких доках? man proc пишет по-русски, но там нифига не написано. |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: нет Всего: 37 |
На мой взгляд, если в инете нигде нету (не смотрел), я думаю надо брать source утилиты top. В ней как раз уже реализовано всё что требуется.
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: нет Всего: 37 |
Кстати на sf.net нашел:
1. htop. 2. top 3. collectl Это сообщение отредактировал(а) t_gran - 8.5.2008, 03:51 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| duken |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2008 Репутация: нет Всего: нет |
t_gran, спасибо
Это сообщение отредактировал(а) duken - 8.5.2008, 08:35 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
Во-первых, спокойно и без перехода на личности, а во-вторых, догадайся с трёх раз, откуда top, ps и компания берёт эту информацию. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
duken,
Добавлено через 2 минуты и 6 секунд я пороюсь за него, но если я там найду требуемую информацию, то публично извинишься перед JackYF -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
Я пару раз рылся в /proc/<pid>, но не досконально. Если, всё-таки, ни MAKCim, ни я эту информацию не найдём, то я извинюсь за неумышленную дезинформацию. Другое дело, что грубость в любом случае неправомерна.
|
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
вот trace-лог команды
видно, что используется /proc
не то? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| duken |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 5.3.2008 Репутация: нет Всего: нет |
MAKCim, то что там нихрена нету - я имел ввиду готовых значений. если бы они там были... а алгоритм расчётов я как раз незнаю. указания количества потребляемых мегагерц или процентов CPU в /proc/<pid>/ нету.
про то, используется /proc при их вычислении или нет, я ничего не говорил. и так знаю что да. а за
извиняюсь. может кто-нибудь всё-таки может ответить что-нибудь внятное на мою просьбу, озвученную в первом посте? врпинципе можно и не на русском. ссылку, или здесь. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
duken,
сформулируй, что значит "количество мегагерц"? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
ps вычисляет %cpu как отношение астрономического времени, прошедшего с момента запуска программы к сумме его stime+utime (все берется из /proc/xxx/stat) top вычисляет тоже самое на основе изменения stime+utime каждого процесса за 2 последовательных интервала опроса (берется процент от суммы приращений stime+utime по всем процессам, возможно по всем показываемым на экране, не уточнял) |
|||
|
||||
| Dogevec |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Писоединяюсь к вопросу про вычисление мегагарц под каждый выбранный процесс. Ну вот допустим у меня команда /proc/<PID>/stat выдала вот такое:
cat /proc/3190/stat: 3190 (ksmserver) S 1 3174 3174 0 -1 4202560 2168 0 6 0 4 11 0 0 18 0 1 0 18482 26296320 2449 4294967295 134512640 134551920 3214674864 3214672224 3063738056 0 0 4096 83115 0 0 0 17 0 0 0 0 И из каких же значиний и каким макаром я могу вычислить количество мегагерц, потребляемых данным процессом? |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Одним постом выше было все написано
Hertz - частота системного таймера в ядре (можно забить константой) CPU% = (utime+stime)/(curtime-starttime) * 100% Для определения Hertz можно взять это:
Добавление:
Т.е. сумма этих чисел (3357+0+4313+1362393) и есть curtime Это сообщение отредактировал(а) xvr - 6.9.2008, 12:24 |
||||||||
|
|||||||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |