Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Сколько памяти занимает процессы или про top еще раз  (Прочитано 5294 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Привет!
Итак у меня есть два вопроса:
Первый скорее надо в другой форум постить. У меня машинка для мониторинга с установленной icinga2 и гигом оперативы. Почти вся оперативка скушана. Посоветуйте, как бы сделать так, чтобы туда же еще и графит поместился.

Второй вопрос вынесен в заголовок темы.
Как известно, в top показывается три значения памяти: VIRT  RES  SHR
Сколько же занимает процесс в реальной памяти ? Что нужно урезать, чтобы освободить память ?

Немного моих размышлений над вот таким выводом команд:
Сортируем по виртуальной памяти: [root@monitor ~]# ps -aux | sort -nr -k 6 | head
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
icinga   25601  7.2  5.8 687492 59400 ?        SNsl Aug07   2:08 /usr/sbin/icinga2 --no-stack-rlimit daemon -c /etc/icinga2/icinga2.conf -d -e /var/log/icinga2/error.log --reload-internal 8109
apache   25015  0.5  4.4 382792 45128 ?        S    Aug02  41:32 php-fpm: pool www           
apache   25097  0.5  4.1 379800 42144 ?        S    Aug02  41:27 php-fpm: pool www           
apache   25346  0.5  4.0 379444 41708 ?        S    Aug02  41:27 php-fpm: pool www           
apache   25344  0.5  4.0 379512 41636 ?        S    Aug02  41:17 php-fpm: pool www           
apache   22432  0.5  3.7 375740 38184 ?        S    Aug02  41:04 php-fpm: pool www           
apache   22417  0.5  3.7 375412 37928 ?        S    Aug02  41:18 php-fpm: pool www           
apache   25353  0.5  3.6 375208 37752 ?        S    Aug02  41:05 php-fpm: pool www           
apache    4062  0.3  3.6 375004 37732 ?        S    Aug05  11:39 php-fpm: pool www           
mysql    21345  3.5  3.4 710820 35088 ?        Sl   Aug07  12:07 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

Суммируем : [root@monitor ~]# ps aux  | awk '{s+=$5; } END {print s}'
8778420

Что ?! 8,5 гигов ? Да у меня всего гиг.

Ок, значит нам нужен столбец Res.
Складываем и смотрим на free -m
[root@monitor ~]# ps aux  | awk '{s+=$6; } END {print s}'
516096
[root@monitor ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           996        919         77          0         38        424
-/+ buffers/cache:        456        539
Swap:         2047         13       2034
То есть наши процессы потребляют 500Мб оперативки, а остальное в кеше валяется.

Супер - то есть у меня 500 метров свободной оперативки и я могу ставить графит в придачу или нужно еще оперативки ?

Собственно, помогите прояснить сей неясный для меня момент.

Следующий вопрос - про php-fpm. Конфиг вот такой:
pm = dynamic
pm.max_children = 50
pm.max_spare_servers = 35
pm.min_spare_servers = 1
pm.start_servers = 1

А реально висит 8 чилдренов на одном мастере. Как понять - надо ли столько реально ? Стоит ли задавать значение параметру pm.max_requests ?

Спасибо за ответы.
P.S> сорри, если не в тот форум.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
top -b -n 1
Wars ~.o

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Виктор, спасибо за ответ, конечно.
Но хотелось бы всё же ответов на вопросы.
Ваша команда прекрасна, но она не даёт ничего нового.
Как посмотреть top я и так знаю. Вопрос был немного про другое.

Оффлайн it0r

  • Забанен
  • Старожил
  • *
  • Сообщений: 2276
    • Просмотр профиля
...два вопроса:
Первый ...Почти вся оперативка скушана. Посоветуйте, как бы сделать так, чтобы туда же еще и графит поместился.
Второй ...Что нужно урезать, чтобы освободить память ?
...

1+2=zram+lz4
swappiness
« Последнее редактирование: 08 Августа 2015, 12:14:25 от it0r »
ТУТ - это дерево. А ЗДЕСЬ - это МЕСТО.... Так что ТУТ - это не ЗДЕСЬ.

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
...два вопроса:
Первый ...Почти вся оперативка скушана. Посоветуйте, как бы сделать так, чтобы туда же еще и графит поместился.
Второй ...Что нужно урезать, чтобы освободить память ?
...

1+2=zram+lz4
swappiness

Спасибо за ответ, но не оно.
Вопрос именно про вывод top/ps - как его читать.
Если смотреть VIRT - там явно не про оперативку. Надо читать RES ? Почему тогда цифры суммы по столбцу RES и выводу free -m не сходятся.

Но в целом, спасибо. Кажется, ориентироваться таки надо на RES.

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6061
    • Просмотр профиля

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
#!/bin/bash
top -b -n 1 |  sed '/^top/,/PID .* COMMAND/d' | \
while read PID1 USER1 PR1 NI1 VIRT1 RES1 SHR1 S1 CPU1 MEM1 TIME1 COMMAND1
do
echo "$PID1 $USER1 $PR1 $NI1 $VIRT1 $RES1 $SHR1 $S1 $CPU1 $MEM1 $TIME1 $COMMAND1"
done

не?
Wars ~.o

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Еще раз - вопрос не в скрипте, а в том что именно написано в выводе команды. Что означают столбцы VIRT, RES, SHR
Виктор, вот смотри - у нас три столбца отвечают за память. VIRT, RES, SHR.

Смотрим вывод top:
top - 23:41:11 up 10 days,  7:16,  1 user,  load average: 0.06, 0.10, 0.09
Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  6.4%sy, 11.1%ni, 79.2%id,  0.7%wa,  0.0%hi,  0.0%si,  0.7%st
Mem:   1020348k total,   955032k used,    65316k free,    49944k buffers
Swap:  2097148k total,    18864k used,  2078284k free,   511452k cached
Да у нас вся оперативка забита! Еще и в своп немного залезли. Где тут место еще и для графита ?! Нету!

Сложим  цифры по столбцу RES:
[root@monitor ~]# ps aux  | awk '{s+=$6; } END {print s}'
424460
Хм, а занято-то всего 414 метра! Гуляем - еще полгига свободных.

[root@monitor ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           996        931         65          0         48        498
-/+ buffers/cache:        383        612
Swap:         2047         18       2029
Вывод free -m вообще говорит, что у нас 612 метров свободны!

Но я не могу понять - цифры в 414 Мб я вообще не нахожу.

Итого вопрос - как правильно прочитать значения в выводах команд top, ps, free - сколько же реально оперативки свободно ?  Как понять - какие процессы отъедают память ? Какие столбы из VIRT, RES, SHR надо читать и как их правильно интерпретировать ?

За htop огромное спасибо! Похоже, оно действительно показывает реальные потребности в памяти! Спасибо огромное, БТР!

symon2014

  • Гость
bazzilio, не ту строчку читаешь, свободно 65 м. И сложи 383 и 612.

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
bazzilio, не ту строчку читаешь, свободно 65 м. И сложи 383 и 612.

Если я верно понимаю - под данные программ занято именно 383 МБ, а 612 - просто кеш. Если я добавлю программу на условные 200 Мб данных, цифры просто изменяться на 583 и 412
Верно я понимаю ?

Или в свопе станет на 200 Мб больше ?

symon2014

  • Гость
bazzilio, нет, свободно только 65 м.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
65 м
1-ый ядро маленкий без инфо это начало загрузка извлечь получать 65мб занято.
2-ой прошло загрузка ядро большие инфо и ubuntu.
L~/initrd$
L~/initrd$ du -h initrd.lz
20M initrd.lz
L~/initrd$
L~/initrd$ cd dilz
L~/initrd/dilz$ ls
bin  conf  etc init  lib  run sbin  scripts  usr  var
L~/initrd/dilz$ du -sh ./
65M ./
L~/initrd/dilz$

Wars ~.o

Оффлайн bazzilio

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
То, что свободно 65 метров - это понятно.
Вопросы:
1. А кем сколько занято ? как посчитать ? смотреть столбец RES ?
2. Если сложить все столбцы res - получим 414 МБ. Это то, сколько _суммарно_ занято программами ?
3. Что произойдёт, если запустить еще одну программу, которая кушает 200 МБайт оперативки ? Уменьшится размер кеша или увеличиться использование свопа ?

symon2014

  • Гость
Есть ещё параметр Swappiness - по умолчанию 60, т.е. когда занято уже 60% памяти, начинается скидывание в свап.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
bazzilio,
free -m
echo 1 | sudo tee /proc/sys/vm/drop_caches
echo 2 | sudo tee /proc/sys/vm/drop_caches
echo 3 | sudo tee /proc/sys/vm/drop_caches
echo 0 | sudo tee /proc/sys/vm/drop_caches
free -m
?
Wars ~.o

 

Страница сгенерирована за 0.113 секунд. Запросов: 23.