The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Память занимаемая процессом"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Память занимаемая процессом"  
Сообщение от pegas email(??) on 05-Июн-08, 16:43 
1) Можно ли какой либо комнадой узнать, сколько страниц памяти занимает определенный процесс?
2) Если да, то можно ли определить какие это сраницы памяти? RAM или SWAP?
3) Как можно определить сколько процесс занимает всего RAM памяти ?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Память занимаемая процессом"  
Сообщение от Arpo email(ok) on 06-Июн-08, 08:57 
>1) Можно ли какой либо комнадой узнать, сколько страниц памяти занимает определенный
>процесс?
>2) Если да, то можно ли определить какие это сраницы памяти? RAM
>или SWAP?
>3) Как можно определить сколько процесс занимает всего RAM памяти ?

pmap ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Память занимаемая процессом"  
Сообщение от pegas email(??) on 06-Июн-08, 09:06 
Ладно, тогда более точно излогаю ситуацию :)
Как я понимаю, в ps aux показатель использования памяти, отвечает "VSZ". Допустим, при суммировании показателей всех процессов, получаем 784МБ.
Также есть такая команда как pmap, которая тоже выдает информацию о процессе. Если просуммировать то тоже получается этоже число (за исключением поргрешности небольшой, которая появляется скорее всего из-за того, что между запуском двух этих проверок один-два процесса умерли/стартовали.)
Т.к. у емня VDS построенная на virtuozzzo, то есть такая штука как /proc/user_beancounters. Там основные показатели:
---
resource           held    maxheld    barrier      limit    failcnt
privvmpages       92241      94862     131072     133000     106370
physpages         34697      35610          0 2147483647          0
oomguarpages      35220      36133     327680 2147483647          0
---
Это размер досутпной и используемой памяти в страницах памяти. Страница паямти=4КБ. Итого получаем что физической памяти используется 34697*4 = 135МБ, а по показателю privvmpages испольщуется 360МБ.
Эти цифры вообще не с какими приведенными выше с помощью сложений.
Но это ещё не всё. В папочке /proc/ есть для каждого процесса отдельаня папка и там есть status, из которгго можно подчерпнуть известные нам параметры(расшифровки этих параметров я тоже не нашел):
---
VmSize:    36232 kB
VmLck:         0 kB
VmRSS:     13492 kB
VmData:     8932 kB
VmStk:       100 kB
VmExe:       306 kB
VmLib:     28162 kB
---
Если просуммировать VmRSS всех процессов, то получаем примерно 260МБ (что опять несовпадает с какой либо цифрой).
При суммировании VmSize получаем 782МБ, что примерно совпадает с показателем VSZ в ps aux.

Так какой же из этих показателей - использование физической (ака RAM), а не SWAP памяти?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Память занимаемая процессом"  
Сообщение от DeadMustdie email(??) on 06-Июн-08, 09:26 
>Так какой же из этих показателей - использование физической (ака RAM), а
>не SWAP памяти?

RSS

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Память занимаемая процессом"  
Сообщение от pegas email(??) on 06-Июн-08, 09:29 
>>Так какой же из этих показателей - использование физической (ака RAM), а
>>не SWAP памяти?
>
>RSS

У меня при суммировании VmRSS получилось 260МБ. Но это несовпадает не с одним из показателей в /proc/user_beancounters. (а именно не с privvmpages не с oomguarpages). Как это можно объяснить?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Память занимаемая процессом"  
Сообщение от angra (ok) on 06-Июн-08, 09:45 
Дам очень простой совет - забейте на это дело. Пока нормально не начнете программировать на С для вашей ОС, вы не поймете какие есть виды памяти и как их правильно считать. Вопрос, подобный вашему, возникает на этом форуме регулярно и, что примечательно, каждый раз его задает человек, не понимающий как происходит работа с памятью в системе, также никто из задающих не может внятно объяснить, зачем оно ему понадобилось.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Память занимаемая процессом"  
Сообщение от pegas email(??) on 06-Июн-08, 09:48 
>Дам очень простой совет - забейте на это дело. Пока нормально не
>начнете программировать на С для вашей ОС, вы не поймете какие
>есть виды памяти и как их правильно считать. Вопрос, подобный вашему,
>возникает на этом форуме регулярно и, что примечательно, каждый раз его
>задает человек, не понимающий как происходит работа с памятью в системе,
>также никто из задающих не может внятно объяснить, зачем оно ему
>понадобилось.

Ну может я конечно веткой форума ошибся, может чего, но лучше ветки ненашел. Мне это интеренсо больше не из-за программирования, а из-за поддержки сервера.
Буду очень признателен если объясните в двух словах что и как, и как там память работает. В *nix программировал только на высокоуровневых языках, а вот на низкоуровневых (включая Си), есть хороший опыт программирования в винде. Так что думаю при желании коголибо объяснить мне, я пойму :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Память занимаемая процессом"  
Сообщение от chip email(??) on 06-Июн-08, 10:29 
>в двух словах что и как, и как там память работает.

http://www.google.ru/search?aq=f&complete=1&hl=ru&newwindow=...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Память занимаемая процессом"  
Сообщение от angra (ok) on 06-Июн-08, 11:00 
В двух словах этого не объяснишь, да и не вспомню сразу все возможные варианты. Могу лишь привести несколько примеров навскидку:
1. fork работает по принципу copy-on-write. в результате как прикажете учитывать общие для нескольких копий одного процесса части? Если мы сложим память используемую каждым из них, то получим значительно больше, чем память используемая ими сообща.
2. Аналогичная проблема с shared memory  и отображаемыми в память файлами
3. Как считать библиотеки? Ведь одна билиотека может обслуживать только один процесс (тогда логично добавить ее к занимаемой им памяти), но может обслуживать и десяток.
4. Классический пример при изучении страничной организации памяти - разреженные матрицы. А именно, реальная память не выделяется, пока не произошло обращение к странице. В результате с одной стороны память процессу как бы выделили, например несколько гигабайт, но вот реальной памяти ушло всего несколько метров. Кстати, некоторые файловые системы поддерживают подобное и с файлами.

Уже вышеперечисленного должно хватить чтобы перестать складывать цифры выдаваемые top, ps, etc и сравнивать их с резултатами free, которые кстати по вышеперечисленным и ряду других причин тоже не являются объективными. Есть утилиты более точно отражающие количество используемой и занятой памяти, вот только все равно это не отменяет вопроса - ЗАЧЕМ оно вам надо? Уж не стандартная ли для (экс-)виндузятников болезнь - желание дефрагментировать fs, чистить реестр, оптимизировать память и всячески твикать систему вместо нормальной работы с ней? :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Память занимаемая процессом"  
Сообщение от pegas email(??) on 06-Июн-08, 17:05 
Спасибо всем, суть вопроса ясна. Тогда такой вопрос по поводу Оперативки.
---
resource           held    maxheld    barrier      limit    failcnt
privvmpages       92241      94862     131072     133000     106370
physpages         34697      35610          0 2147483647          0
oomguarpages      35220      36133     327680 2147483647          0
---
По лимитам.... как я понял тут мне доступно всегда 512МБ и если неперегруженна система и есть свободная оперативка, то могу использовать и до 1ГБ ? 1 страница памяти = 4КБ
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Память занимаемая процессом"  
Сообщение от pegas email(??) on 06-Июн-08, 17:12 
А по поводу такого большого вопроса "зачем", отвечу, что хотелось бы узнать, какие процессы и сколько отжирают памяти, т.к. память эта та вещь, которой вечно не хватает.
Да и просто, хотелось бы разобраться, как оно работает в никсах. Теперь хотябы знаю с какой стороны подойти :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру