Как регистрировать использование памяти в минуту на Ubuntu Server?

Я проверил несколько программ, таких как htop или top, но не смог найти ни одной функции для записи в минуту.

Есть ли способ сделать это для отслеживания проблем с памятью?

Правка: я использовал линод и решил использовать Longview.

https://dl.dropboxusercontent.com/u/28301519/2013-04-18_231652.png

2
задан 19 April 2013 в 00:17

5 ответов

Установите и настройте пакет sysstat, который выполняет именно то, что вы просите.

sudo apt-get install sysstat
0
ответ дан 19 April 2013 в 00:17

vmstat -S M 60 сделал бы (в мегабайтах).

Только необходимо помнить, что на самом деле свободная RAM "свободна + кэш + buf".

Для входа цели это могло бы иметь смысл распечатать его время, штампованное, который может быть выполнен различными способами, для, например:

vmstat -nS M 60 | while read _vmstat; do echo $(date --rfc-3339=seconds) $_vmstat; done

3
ответ дан 19 April 2013 в 00:17

Если бы я делал это, я бы, вероятно, написал что-нибудь для RRDtool .

RRDtool - это то, что построено для сбора данных на основе интервалов, а затем для построения графиков на обратной стороне данных. Если вы когда-либо видели сетевой график на панели управления интернет-провайдера, это, вероятно, было сделано с помощью RRDtool.

Как вы реализуете, зависит от вас. Существуют «чистые» решения bash с cron, но есть также и приятные опции Python и Perl:

  • https://github.com/icc/rrdtool -bash-scripts / blob / master / memory.sh

    Насколько я вижу, это обновляет изображение в заданном месте. Это может быть на вашем веб-сервере или удалено через NFS в вашем домашнем каталоге.

  • http://coreygoldberg.blogspot.co.uk/2008/05/python-rrdpy-round-robin-databases.html

    Это содержит свой собственный таймер и делает все, что угодно. Я предпочитаю это ударять, потому что там легче ковыряться, но все, что плывет на твоей лодке. Вероятно, для непифониста сложнее настроить его.

Если вы хотите намного большего, посмотрите Мунин. При этом RRDtool широко используется для регистрации всей загрузки системных данных и генерирует статические HTML-страницы с заданным интервалом.

0
ответ дан 19 April 2013 в 00:17

Есть еще один способ сделать это. Используя задания cron, мы можем получить это.

* * * * * username /path/to/./script.sh

скрипт - это просто

#!/bin/bash
echo "$(date +%Y%m%d-%H%M%S) $(free -mt | awk 'END{print $4}')" >> ~/memlog.txt

, перед размещением скрипта сделайте

chmod +x script.sh

, поэтому создайте скрипт выше и сделайте, как я сказал, затем поместите скрипт в / usr / местоположение бина. затем откройте /etc/crontab с помощью

sudo nano /etc/crontab

и поместите туда первую строку. Этот сценарий выполняется каждую минуту и ​​выдает сведения о памяти за каждую минуту.

Итак, наконец, в файле log.txt будут храниться данные журнала памяти за каждую минуту.

и у меня есть еще одна полезная информация для вас, что

watch cat log.txt покажет файл log.txt в терминале и обновит содержимое live.so в текущем завершив его самостоятельно, набрав один раз, вы можете наблюдать в реальном времени за файлом log.txt.

0
ответ дан 19 April 2013 в 00:17

Вот мой трюк. С помощью этой команды я добавляю отчеты о свободе, vmstat и top в текстовые файлы каждые 5 секунд.

 watch -n 5 'free -mt  >> free-report.txt && vmstat -S M >> vm-report.txt && top -b -n1 >> top-report.txt'
0
ответ дан 19 April 2013 в 00:17

Другие вопросы по тегам:

Похожие вопросы: