URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 60322
[ Назад ]

Исходное сообщение
"Расход памяти..."

Отправлено MVictorL , 23-Сен-05 16:42 
Заметил, что после перезапуска системы web-сервера неуклонно уменьшается кол-во свободной физической памяти (с 4Гб до 50Мб). При этом swap не используется, а top и ps показывают лишь 0,8% на MySQL.

Вопрос: как можно просмотреть ЧТО и КАК реально (в байтах) жрет память?


Содержание

Сообщения в этом обсуждении
"Расход памяти..."
Отправлено gr , 23-Сен-05 23:40 
>Заметил, что после перезапуска системы web-сервера неуклонно уменьшается кол-во свободной физической памяти
>(с 4Гб до 50Мб). При этом swap не используется, а top
>и ps показывают лишь 0,8% на MySQL.
>
>Вопрос: как можно просмотреть ЧТО и КАК реально (в байтах) жрет память?
>


Если кратко - это нормальное поведение ОС. Эээ задача ОС - не держать максимально возможный обьем свободной памяти для тебя, а эффективно делать свое дело.

Напрягаться надо когда растет своп.


"Расход памяти..."
Отправлено MVictorL , 29-Сен-05 10:09 
>Если кратко - это нормальное поведение ОС. Эээ задача ОС - не
>держать максимально возможный обьем свободной памяти для тебя, а эффективно делать
>свое дело.
>
>Напрягаться надо когда растет своп.


Спасибо, но очень хотелось бы конкретно знать, какой процесс скалько ест!
Подскажите, пожалуйста, необходимые команды!..


"Расход памяти..."
Отправлено jonatan , 29-Сен-05 10:15 
free
top

"Расход памяти..."
Отправлено MVictorL , 30-Сен-05 10:05 
>free
>top

Спасибо за ответ, но если бы всё было так просто, то я бы не задавал "справочных" вопросов:

Меня интересует способ определения расхода памяти на КАЖДЫЙ процесс и не в мнимых процентах (как в top), а в реальных байтах!

Неужели никто никогда не задавался таким вопросом?!


"Расход памяти..."
Отправлено vdb , 30-Сен-05 10:12 
А Вы понимаете, как вообще ядро с памятью работает?

"Расход памяти..."
Отправлено jonatan , 30-Сен-05 10:18 
man top
...
2. FIELDS / Columns
   2a. DESCRIPTIONS of Fields
       o: VIRT  --  Virtual Image (kb)
          The  total  amount  of  virtual  memory used by the task.  It includes all code, data and
          shared libraries plus pages that have been swapped out.

          VIRT = SWAP + RES.

       p: SWAP  --  Swapped size (kb)
          The swapped out portion of a task's total virtual memory image.

       q: RES  --  Resident size (kb)
          The non-swapped physical memory a task has used.

          RES = CODE + DATA.

       r: CODE  --  Code size (kb)
          The amount of physical memory devoted to executable code, also known as the  'text  resi-
          dent set' size or TRS.

       s: DATA  --  Data+Stack size (kb)
          The  amount  of  physical memory devoted to other than executable code, also known as the
          'data resident set' size or DRS.

       t: SHR  --  Shared Mem size (kb)
          The amount of shared memory used by a task.  It simply  reflects  memory  that  could  be
          potentially shared with other processes.
...

Выбирайте, какой Вам нужен.


"Расход памяти..."
Отправлено vdb , 30-Сен-05 10:21 
Это зря. щас вопрос будет, почему в сумме не получается общего кол-ва памяти на сервере

"Расход памяти..."
Отправлено MVictorL , 30-Сен-05 16:34 
>Это зря. щас вопрос будет, почему в сумме не получается общего кол-ва
>памяти на сервере

Спасибо за доверие!
Почему "в сумме не получается общего кол-ва памяти" я могу понять! ;-)
Я не могу понять (как я писал в самом начале), почему память (физическая -- не swap) постоянно, но уверенно уменьшается.

Я так понимаю, никто (даже представляющие, как ядро работает с памятью) не может посоветовать никакой утилиты контроля расхода памяти, кроме top'а?


"Расход памяти..."
Отправлено Antonio , 30-Сен-05 16:47 
Знаете, что такое дисковый кэш? Так вот, объясняя на пальцах, вся память (сколько ядро может) отжирается под кэш (называется buffers/cache). Для того, чтобы не дро^H^H^H обращаться к винту на каждый чих. Если кому-то понадобился кусок памяти, буфера/кэш уменьшаются, высвободившийся кусок отдаётся приложению. Если это не удаётся (нечего освобождать или запрошено слишком много), система полезет в своп.

Таким образом, поводим итог. Система работает правильно (памяти достаточно), если:
1. Free -- немного.
2. Buffers/Cache -- почти вся физическая память.
3. Swap -- либо 0, либо ОЧЕНЬ мало.

P.S. Забудьте досово-виндовые привычки про то, что должно быть много free-памяти. Её должно быть мало.


"Расход памяти..."
Отправлено MVictorL , 30-Сен-05 17:31 
>Знаете, что такое дисковый кэш? Так вот, объясняя на пальцах, вся память
>(сколько ядро может) отжирается под кэш (называется buffers/cache).

Ok!
А можно ли убедиться в том, что память ДЕЙСТВИТЕЛЬНО сожрана кэшем?


"Расход памяти..."
Отправлено Antonio , 30-Сен-05 17:52 
См. в выдаче команды free. Так и называется buffers/cache.

"Расход памяти..."
Отправлено SubGun , 30-Сен-05 18:52 
А у меня нет комманды free. Это надо доставлять что-то?

"Расход памяти..."
Отправлено Av , 01-Окт-05 00:36 
>А у меня нет комманды free. Это надо доставлять что-то?

тогда смотрите в TOP!

пример:
Mem: 33M Active, 47M Inact, 25M Wired, 6292K Cache, 22M Buf, 5724K Free
Swap: 1024M Total, 28K Used, 1024M Free



"Расход памяти..."
Отправлено MVictorL , 03-Окт-05 12:27 
>См. в выдаче команды free. Так и называется buffers/cache.

Спасибо большое!

А расход памяти по отдельным процессам, я понимаю, -- глухо?..


"Расход памяти..."
Отправлено allez , 03-Окт-05 13:31 
>А расход памяти по отдельным процессам, я понимаю, -- глухо?..

Вы что, издеваетесь? Вас уже три или четыре раза адресовали к утилите top,
прочтите наконец ее man! А заодно и man ps, вдумчиво и внимательно. И тогда
у вас перестанут возникать (вы уж не сердитесь) глупые вопросы вроде этого.


"Расход памяти..."
Отправлено MVictorL , 04-Окт-05 11:57 
>>А расход памяти по отдельным процессам, я понимаю, -- глухо?..
>
>Вы что, издеваетесь? Вас уже три или четыре раза адресовали к утилите
>top,
>прочтите наконец ее man! А заодно и man ps, вдумчиво и внимательно.
>И тогда
>у вас перестанут возникать (вы уж не сердитесь) глупые вопросы вроде этого.
>

У меня такое же чувство, что надо мной издеваются! ;-)
Я писал в топике: top выдает 0,8% на mysql, остальные процессы -- 0,0%!!!
Если всех присутствующих это полностью удовлетворяет, когда от 4Гб физической памяти осталось меньше 50Мб, тогда я перестаю "издеваться" и буду пользоваться панацеей для всевозможной статистики -- программой top!..


"Расход памяти..."
Отправлено Andrew_Lunyov , 04-Окт-05 12:10 
>>>А расход памяти по отдельным процессам, я понимаю, -- глухо?..
>>
>>Вы что, издеваетесь? Вас уже три или четыре раза адресовали к утилите
>>top,
>>прочтите наконец ее man! А заодно и man ps, вдумчиво и внимательно.
>>И тогда
>>у вас перестанут возникать (вы уж не сердитесь) глупые вопросы вроде >этого.
>>
>
>У меня такое же чувство, что надо мной издеваются! ;-)
>Я писал в топике: top выдает 0,8% на mysql, остальные процессы --
>0,0%!!!
>Если всех присутствующих это полностью удовлетворяет, когда от 4Гб >физической памяти осталось
>меньше 50Мб, тогда я перестаю "издеваться" и буду пользоваться панацеей >для
>всевозможной статистики -- программой top!..
Если не ошибаюсь 0.8% это не размер памяти, которую потребляет тот или иной процесс, а процессорное время. Или я не прав?

"Расход памяти..."
Отправлено anTIDot , 04-Окт-05 12:21 
А ты выложи сюда полностью весь вывод команды top , посмотрим.

"Расход памяти..."
Отправлено Nimdar , 04-Окт-05 12:47 
Автор, ты уже достал. Даже систему свою не называешь.
А теперь разуй глаза.

Linux
$ top
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
10231 mysql     15   0  806m 661m 4808 S  0.7 32.6  10126:14 mysqld

mysql жрет 806 Мб.

FreeBSD
$ top
  PID USERNAME PRI NICE   SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND
22689 mysql     20    0   301M   266M kserel 3  44.0H  3.47%  3.47% mysqld

mysql жрет 301 Мб.


"Расход памяти..."
Отправлено MVictorL , 04-Окт-05 13:02 
Я не хочу вызывать раздражение, но дело принципа! (неужели top -- это всё, что есть в системе для статистики???)

Система RedHat 9, вывод команды top:

103 processes: 102 sleeping, 1 running, 0 zombie, 0 stopped
CPU0 states:   1.0% user   0.0% system    0.0% nice   1.0% iowait  97.0% idle
CPU1 states:   0.0% user   0.0% system    0.0% nice   0.0% iowait 100.0% idle
CPU2 states:   0.0% user   0.0% system    0.0% nice   0.0% iowait 100.0% idle
CPU3 states:   0.0% user   0.0% system    0.0% nice   0.0% iowait 100.0% idle
Mem:  4640568k av, 4583736k used,   56832k free,       0k shrd,  381600k buff
                   3085004k actv,       0k in_d,   73096k in_c
Swap: 2040244k av,       0k used, 2040244k free                 3885300k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
1667 mysql     15   0 67540  65M  2020 S     0.1  1.4  11:13   1 mysqld
    1 root      15   0   476  476   420 S     0.0  0.0   0:02   3 init
    2 root      RT   0     0    0     0 SW    0.0  0.0   0:00   0 migration/0
    3 root      RT   0     0    0     0 SW    0.0  0.0   0:00   1 migration/1
    4 root      RT   0     0    0     0 SW    0.0  0.0   0:00   2 migration/2
    5 root      RT   0     0    0     0 SW    0.0  0.0   0:00   3 migration/3
    6 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 keventd
    7 root      34  19     0    0     0 SWN   0.0  0.0   0:00   0 ksoftirqd/0
    8 root      39  19     0    0     0 SWN   0.0  0.0   0:00   1 ksoftirqd/1
    9 root      34  19     0    0     0 SWN   0.0  0.0   0:00   2 ksoftirqd/2
   10 root      34  19     0    0     0 SWN   0.0  0.0   0:00   3 ksoftirqd/3
   13 root      16   0     0    0     0 SW    0.0  0.0   0:00   2 bdflush
   11 root      15   0     0    0     0 SW    0.0  0.0   0:02   1 kswapd
   12 root      15   0     0    0     0 SW    0.0  0.0   0:01   1 kscand
   14 root      15   0     0    0     0 SW    0.0  0.0   0:12   2 kupdated


"Расход памяти..."
Отправлено Antonio , 04-Окт-05 13:12 
Что и требовалось доказать. mysql жрёт 67540 килобайт памяти. Остальное в буферах (381600k) и кэше (3885300k). Своп не используется. Как и должно быть.

Не мешайте системе работать. ;-)


"Расход памяти..."
Отправлено MVictorL , 04-Окт-05 15:40 
>Что и требовалось доказать. mysql жрёт 67540 килобайт памяти. Остальное в буферах
>(381600k) и кэше (3885300k). Своп не используется. Как и должно быть.
>
>
>Не мешайте системе работать. ;-)

Ok!
Спасибо большое!

... просто думал есть средства по-проще top'а...


"Расход памяти..."
Отправлено Nimdar , 04-Окт-05 15:41 
Куда уж проще?!

"Расход памяти..."
Отправлено DeadMustdie , 07-Окт-05 22:04 
>... просто думал есть средства по-проще top'а...

Насчёт проще - не знаю. Есть тупее: man proc.


"Расход памяти..."
Отправлено pierrot , 08-Окт-05 01:20 
>>См. в выдаче команды free. Так и называется buffers/cache.
>
>Спасибо большое!
>
>А расход памяти по отдельным процессам, я понимаю, -- глухо?..

pmap PID