Автор Тема: [РЕШЕНО] Как htop и conky определяют количество занятой оперативной памяти  (Прочитано 389 раз)

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

Оффлайн IlyaLinux

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 42
Здравствуйте, друзья!

С детским восторгом открываю для себя окружение рабочего стола Xfce. После 4 лет работы с Ubuntu 16.04 ты привыкаешь, думаешь, что живешь неплохо на Unity, пока не попробуешь другое DE. )

К сути. В Xfce есть плагин "Общий монитор", который позволяет с определенной периодичностью запускать скрипт и выводить результат его работы на панель. Все эти годы я контролировал потребление оперативной памяти с помощью htop. Запускал ее в терминале и в процессе отладки приложений поглядывал на это окошко. Не могу сказать, что это было удобно, т.к. терминал часто перекрывали другие приложения и приходилось его "поднимать" вручную. Теперь же стало возможно написать скрипт, который опросит /proc/meminfo и освободит от необходимости "ручного" наблюдения за параметром.

На бумаге выглядит просто замечательно, но получить результат совпадающий с htop пока не удается. Пробовал

MemTotal - MemFree - Buffers - Cached
, но это очень приблизительно и не учитывает tmpfs.

htop и conky показывают максимально достоверно, на мой взгляд, но повторить за ними не просто. А вообще возможно?
« Последнее редактирование: 03 Июль 2020, 13:39:38 от IlyaLinux »
 


Оффлайн IlyaLinux

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 42
Может я смотрю не туда. Кто чем контролирует занятую оперативную память?
 

Оффлайн ChubaDuba

  • Старожил
  • ****
  • Сообщений: 746
  • Debian 9 & Xmonad
    • Бλог
  • Jabber: achubakov@jabber.ru
У меня вот такой скрипт:
#! /bin/bash
MEM=$(free -m | awk 'NR==2{print $3}')
echo "<fc=#707d8a>$MEM</fc><fc=#707d8a>mb</fc>"
exit 0
Выглядит это в xmobar'e вот так:
Бλог   @chuba_duba
 
Пользователи, которые поблагодарили этот пост: IlyaLinux

Оффлайн IlyaLinux

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 42
ChubaDuba, free, безусловно привлекает своей простотой, но работает, к сожалению, грубо. Смотрите какая разница на моей машине:
Ваш скрипт: 2066,
free (used + shared): 4380 (4,28G)
htop: 4.29G

Это как в том анекдоте. Когда у вас одни часы, вы точно знаете который час, а когда несколько, то вы уже ни в чем не уверены. )
Хотя, вариант free (used + shared) неплох.

PS. Вы совсем не используете tmpfs, для браузера там, для /tmp?
Рекомендую. Firefox с полсотней открытых вкладок потребляет всего 101 MB, работает быстрее и не пердолит SSD почем зря.
cat /etc/fstab
...
# /home/ilya/.cache/mozilla/firefox/ was on tmpfs
tmpfs              /home/ilya/.cache/mozilla/firefox/     tmpfs   size=1G 
...
Линукс в плане работы с размещением файлов в оперативной памяти - прекрасен! При монтировании такого раздела он использует не весь 1GB, а столько, сколько весят файлы в папке, т.е. перерасхода не будет.
 

Оффлайн ChubaDuba

  • Старожил
  • ****
  • Сообщений: 746
  • Debian 9 & Xmonad
    • Бλог
  • Jabber: achubakov@jabber.ru
ChubaDuba, free, безусловно привлекает своей простотой, но работает, к сожалению, грубо.
Я привёл пример своего использования...

Такая разница погоды мне не делает.
Смотрю на эту цифру если только нужно запустить вторую виртуалку, что бывает крайне редко.
А вам ничего не мешает несколько модифицировать скрипт, сложив два числа used и shared и вывести результат.
Бλог   @chuba_duba
 

Оффлайн IlyaLinux

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 42
Зря я ругался на free, нормально показывает. Просто дополнительно нужно учесть shared. Мониторил рядом htop и watch free - показывают одно и тоже. Спасибо, берем!

Если кто хочет присоединиться вот скрипт:
free -b | awk 'FNR==2{printf "%.2f GB\n", ($3+$5)/1073741824}' # выводит в GB
free -b | awk 'FNR==2{printf "%\047d\n", ($3+$5)/1048576}' # выводит в MB с разделителем тысяч
« Последнее редактирование: 03 Июль 2020, 13:38:29 от IlyaLinux »
 
Пользователи, которые поблагодарили этот пост: ZeniaM

Теги:
 

[Решено] Не работает комбинация Ctrl+N в Debian 6.0.4 в своей программе...

Автор Leo

Ответов: 9
Просмотров: 3052
Последний ответ 11 Май 2012, 07:12:18
от Malaheenee
Firefox 17.0.8 [РЕШЕНО]

Автор s7x8dn

Ответов: 23
Просмотров: 3193
Последний ответ 09 Июнь 2015, 14:29:59
от sidbar
[РЕШЕНО] С libdbus-glib-1-dev компилируется а с libglibmm-2.4-dev нет

Автор IlyaLinux

Ответов: 4
Просмотров: 150
Последний ответ 05 Июнь 2020, 15:57:54
от IlyaLinux
[Решено] Debian/kFreeBSD igmpproxy и Errno(45). Похоже нужно пересобрать ядро.

Автор 315th

Ответов: 3
Просмотров: 2524
Последний ответ 05 Январь 2014, 23:53:41
от sunny_side
[Решено]Как собрать usb-imagewriter без gksu?

Автор amd_amd

Ответов: 4
Просмотров: 1321
Последний ответ 03 Январь 2017, 16:24:49
от amd_amd