Zabbix: Difference between «memory usage» and «memory utilization»
I recently started using Zabbix for monitoring, and there is a question I can’t figure out on my own. 🙂 Is «memory usage» kind of inverse function of the «memory utilization»? I have high percentage of the «utilization» and low count on the «usage». Thanks in advance.
asked Apr 27, 2020 at 16:28
FaultierSP FaultierSP
75 1 1 gold badge 1 1 silver badge 5 5 bronze badges
1 Answer 1
Memory usage or utilization etc. are probably item names. You should look into the Template your are using and locate the corresponding key to understand the value.
For instance, in my Zabbix Server 4.4 the Template Module Linux memory by Zabbix agent template has a Memory utilization item with this key: vm.memory.size[pavailable]
pavailable — ‘available’ memory as percentage of ‘total’ (calculated as available/total*100)
Depending on the parameter key, you can extract various memory informations:
Parameters The following parameters are available for this item:
active — memory currently in use or very recently used, and so it is in RAM
anon — memory not associated with a file (cannot be re-read from it)
available — available memory, calculated differently depending on the platform (see the table below)
buffers — cache for things like file system metadata
cached — cache for various things
[cut]
See which one are you using and maybe try to implement additional items with these parameters to have a first hand experience.
1 Параметры vm.memory.size
В этом разделе представлена более подробная информация, а также специфичная информация по разным платформам, по параметрам vm.memory.size[] элемента данных агента.
Параметры
В этом элементе данных разрешены следующие параметры:
- active — память, используемая в данный момент или была совсем недавно в использовании, и поэтому ещё находится в RAM.
- anon — память, не связанная с файлами (повторное чтение из них невозможно).
- available — доступная память, вычисляется в зависимости от платформы (смотрите таблицу ниже).
- buffers — кэш для таких вещей, как метаданные файловой системы.
- cached — кэш для различных вещей.
- exec — исполняемый код, в основном из (программ) файлов.
- file — кэш содержимого наиболее часто используемых файлов.
- free — память, которая доступна без каких-либо проблем любому объекту, запрашивающему память.
- inactive — память, помеченная, как неиспользуемая.
- pavailable — ‘available’ память в процентах по отношению к ‘total’ (рассчитывается как available / total *100)
- pinned — то же, что и ‘wired’.
- pused — ‘used’ память в процентах по отношению к ‘total’ (рассчитывается как used / total *100)
- shared — память, которая может быть доступна сразу нескольким процессам.
- slab — общий объем памяти, которая используется ядром для кэширования структур данных для собственного использования
- total — общий объем доступной физической памяти.
- used — используемая память, вычисляется в зависимости от платформы (смотри таблицу ниже).
- wired — память, помеченная всегда оставаться в RAM. Она не может быть перемещена на диск.
Некоторые из этих параметров работают только для конкретных платформ и могут быть недоступны на вашей платформе. См. Поддерживаемые элементы данных по платформам.
Вычисления available и used в зависимости от платформы:
Платформа | «available» | «used» |
---|---|---|
AIX | free + cached | реальное использование памяти |
FreeBSD | inactive + cached + free | active + wired + cached |
HP UX | free | total — free |
Linux | free + buffers+cached | total — free |
Linux 3.14+ (также перенесен на 3.10 на RHEL 7) |
/proc/meminfo, см. описание «MemAvailable» в документации ядра Linux (en). Обратите внимание, что free + buffers + cached больше не равняется ‘available’ так как не весь кеш страницы может быть свободен и минимальный объем свободной памяти, зарезервированной системой (low watermark) используется в расчетах. |
total — free |
NetBSD | inactive + execpages + file + free | total — free |
OpenBSD | inactive + free + cached | active + wired |
OSX | inactive + free | active + wired |
Solaris | free | total — free |
Win32 | free | total — free |
Сумма vm.memory.size[used] и vm.memory.size[available] не обязательно равна общему количеству памяти. Например, в FreeBSD:
* Активная, неактивная, wired, кэшируемая памяти считаются использованными, так как содержат некоторую полезную информацию.
* В то же время неактивная, кэшируемая, свободная памяти считаются доступными, так как такая память может быть незамедлительно освобождена процессу, который запросил больше памяти.
Так неактивная память помечается как занятая, так и как свободная, одновременно. В связи с этим, элемент данных vm.memory.size[used] предназначен исключительно в информационных целях, тогда как элемент данных vm.memory.size[available] предназначен для использования в триггерах.
Смотрите также
Zabbix «High memory utilization»
С некоторого времени на одном из серверов с мониторингом Zabbix начал срабатывать триггер «High memory utilization».
На самом сервере 100 гигов памяти, занято всегда не больше 20. Причем сообщение выходит в нерабочее время, когда сервер по идее вообще не должен быть нагружен. Сервер виндовый, терминальный.
Также не до конца понятно, что означает сам триггер. На вики Заббикса это выражение просто не ищется. Залезла внутрь элемента данных. Ключ vm.memory.util, формула last(«vm.memory.size[used]») / last(«vm.memory.size[total]») * 100.
Судя по логике, используемая память сравнивается с общей, что и говорит о нагрузке сервера. Но дело в том, что сервер в принципе не использует больше 20% памяти.
В логах сервера тоже чисто.
Можете подсказать, в какую сторону копать, что именно смотреть, и, все-таки, о какой нагрузке говорит «High memory utilization»?
Zabbix Agent install AlmaLinux – Add Monitoring Target(AlmaLinux) Zabbix Agent2
Zabbix Agent is a software that is installed on servers to monitor and evaluate the operation of various systems and services. The installation of Zabbix Agent on AlmaLinux is carried out as follows.
Zabbix Agent is a software that is installed on a monitor device and provides data on its status and performance to the Zabbix monitoring system. The agent collects information about various parameters, such as CPU usage, memory usage, network traffic, and others, and transmits it to Zabbix Server for analysis and display in the form of graphs, notifications and reports. Zabbix Agent allows you to monitor both physical and virtual servers, network devices and other infrastructure elements.
[1] Install Zabbix Agnet in AlmaLinux 8