skysilver

<<< Назад

Экспресс контроль состояния циклов в Linux

Консольные команды для оценки времени работы циклов и потребляемой ими ОЗУ.

Время работы

Список циклов MajorDoMo, их время запуска и общее время работы (фильтруем php-процессы).

ps -eo lstart,etime,cmd | awk '/php/ && !/awk|sh/'

ps_php
Как видно, циклы были запущены 18 ноября 2018 года и с тех пор непрерывно работают уже 184 дня и 4 часа.

Аналогично можно оценить работу веб-сервера Apache (120 дней и 16 часов).

ps -eo lstart,etime,cmd | awk '/sql/ && !/awk|sh/'

ps_apache

Или базы данных MySQL (391 день и 22 часа, совпадает с аптаймом сервера).

ps -eo lstart,etime,cmd | awk '/sql/ && !/awk|sh/'

ps_sql

При этом время работы самого сервера определяется традиционной командой uptime, что в моем случае составляет на текущую дату 391 день.
srv_uptime

Потребление ОЗУ

Как известно, с потреблением оперативной памяти в Linux не все так прозрачно. Помимо ипользования свободной ОЗУ в качестве кеша и буфера имеются другие особенности работы ядра с памятью, которые приводят к тому, что такие общепринятые утилиты как ps, top, htop не могут отобразить фактическое потребление процессами памяти. Подробнее про нюансы можно прочесть здесь.

Принимая во внимание вышеуказанные положения, определимся для себя, что под потреблением ОЗУ процессом для наших прикладных задач будем подразумевать значение RSS.

RSS - резидентная память (Resident Set Size). Суммарный объем всех страничных кадров (page frame) процесса в оперативной памяти.

VSZ - виртуальная память (Virtual Memory Size). Суммарный объем всех страниц (page) процесса (в том числе и выгруженных).

Оценка потребления ОЗУ для циклов MajorDoMo.
Снова фильтруем php-процессы, сортируем вывод по RSS, для сравнения также отображаем VSZ (второй столбец), в конце выводим общую статистику.

ps -eo rss,vsz,cmd  --sort -rss | awk '/php/ && !/awk|sh/ && !/sudo -u/' | awk '{ rs=$1/1024; vs=$2/1024; allram+=rs;allps+=1; printf("%7.2f MB ",rs); printf("%7.2f MB ",vs); } { for ( x=3 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" } END {print "All PHP Memory Usage (RSS, MB): "allram; print "Process Count: "(allps); print "Average Proccess Size (MB): "allram/(allps)}'

ram_php

Для веб-сервера Apache.

ps -eo rss,vsz,cmd  --sort -rss | awk '/apache/ && !/awk|sh/' | awk '{ rs=$1/1024; vs=$2/1024; allram+=rs;allps+=1; printf("%7.2f MB ",rs); printf("%7.2f MB ",vs); } { for ( x=3 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" } END {print "All Apache Memory Usage (RSS, MB): "allram; print "Process Count: "(allps); print "Average Proccess Size (MB): "allram/(allps)}'

ram_apache

Для базы данных MySQL.

ps -eo rss,vsz,cmd  --sort -rss | awk '/sql/ && !/awk|sh/ && !/sudo -u/' | awk '{ rs=$1/1024; vs=$2/1024; allram+=rs;allps+=1; printf("%7.2f MB ",rs); printf("%7.2f MB ",vs); } { for ( x=3 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" } END {print "All MySQL Memory Usage (RSS, MB): "allram; print "Process Count: "(allps); print "Average Proccess Size (MB): "allram/(allps)}'

ram_sql

И на последок классика жанра - Помогите! Linux съел мою память!

P.S. Скриншоты приведены для системы с PHP версии 5. На PHP версии 7 отображаемое потребление ОЗУ будет больше, что является вполне штатной ситуацией.

Обсуждение (3) (15)

Смотрите так же:
17.06.2019 MajorDoMo и Яндекс Алиса. Алиса, включи свет на кухне.
10.06.2019 MajorDoMo и Яндекс Алиса. Модуль Yandex Home.
06.06.2019 MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
05.06.2019 MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
03.06.2019 Загрузка PHP-расширения PDO MySQL в Windows
01.06.2019 MajorDoMo и Яндекс Алиса. Публикация вебхуков.
29.05.2019 MajorDoMo и Яндекс Алиса. Общие сведения.
08.05.2019 Сценарий контроля состояния SSL сертификатов сайтов
26.02.2019 Экспорт графиков в PNG-файл в модуле Charts
26.01.2019 Мультисерийный кастомный график в модуле Charts
30.12.2018 Личные итоги 2018 года
13.12.2018 График с цветовой индикацией выхода величины за пределы
12.11.2018 Кастомный график в модуле Charts
15.08.2018 Кронштейн NB F120 (North Bayou)
18.07.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 3.
20.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 2.
15.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 1.
20.05.2018 Кросс-компиляция ядра для Banana Pi M2U
14.05.2018 Ссылки на ресурсы по MajorDoMo
02.03.2018 Знакомство и тестирование Banana Pi M2U
21.02.2018 Распаковка Banana Pi M2U
14.02.2018 Одноплатный ПК для MajorDoMo
14.08.2018 Заметки по железу
23.01.2018 Мой взгляд на вопрос голосового управления в MajorDoMo
17.01.2018 Обзор цен на устройства Xiaomi
24.12.2017 Гирлянда на ESP8266 и WS2812
20.12.2017 Блог им. skysilver

Киров, Россия

На форуме: skysilver

Веб-сайт:
http://connect.smartliving.ru/profile/461