Memory usage linux zabbix

1 vm.memory.size parameters

This section provides some parameter details for the vm.memory.size[ ] agent item.

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
  • exec — executable code, typically from a (program) file
  • file — cache for contents of recently accessed files
  • free — memory that is readily available to any entity requesting memory
  • inactive — memory that is marked as not used
  • pavailable — ‘available’ memory as percentage of ‘total’ (calculated as available / total *100)
  • pinned — same as ‘wired’
  • pused — ‘used’ memory as percentage of ‘total’ (calculated as used / total *100)
  • shared — memory that may be simultaneously accessed by multiple processes
  • slab — total amount of memory used by the kernel to cache data structures for its own use
  • total — total physical memory available
  • used — used memory, calculated differently depending on the platform (see the table below)
  • wired — memory that is marked to always stay in RAM. It is never moved to disk.

Some of these parameters are platform-specific and might not be available on your platform. See Zabbix agent items for details.

Platform-specific calculation of available and used:

Platform «available» «used»
AIX free + cached real memory in use
FreeBSD inactive + cached + free active + wired + cached
HP UX free total — free
Linux free + buffers + cached total — free
Linux 3.14+
(also backported to 3.10 on RHEL 7)
/proc/meminfo, see «MemAvailable» in Linux kernel documentation for details.
Note that free + buffers + cached is no longer equal to ‘available’ due to not all the page cache can be freed and low watermark being used in calculation.
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

The sum of vm.memory.size[used] and vm.memory.size[available] does not necessarily equal total. For instance, on FreeBSD:
* Active, inactive, wired, cached memories are considered used, because they store some useful information.
* At the same time inactive, cached, free memories are considered available, because these kinds of memories can be given instantly to processes that request more memory.

So inactive memory is both used and available simultaneously. Because of this, the vm.memory.size[used] item is designed for informational purposes only, while vm.memory.size[available] is designed to be used in triggers.

See also

Источник

Русские Блоги

Zabbix отслеживает использование памяти centos7 (запись мелкая, серый)

Мониторинг памяти: мониторинг использования памяти

Тревога срабатывания: когда уровень использования превышает 95% Сообщение о тревоге

used : Память, используемая программой

free : Нераспределенная память

buff/cache : Системный кеш ( buff cache Блокировать кеш устройства) (page cache Файловый кеш )

[buff/cache Кэш можно освободить: /proc/sys/vm/drop_caches (По умолчанию 0 ) ]

echo 1 > /proc/sys/vm/drop_caches Очистить pagecache

echo 2 > /proc/sys/vm/drop_caches Чистая переработка slab Объекты в распределителе (включая кэш записей каталога и inode Кэш)

echo 3 > /proc/sys/vm/drop_caches Значит ясно pagecache с участием slab Кэшированные объекты в распределителе

available : Доступная память системы

available=free+buff/cache- Память, не подлежащая вторичной переработке (общая память, tmpfs 、 ramfs Подождите)

2 : Пользовательский шаблон

Имя Шаблона: Memory used percent

2.2 : Создание элементов мониторинга

Ключевое значение: vm.memory.size[usedpercent]

Тип информации: число (без положительного или отрицательного)

имя: Memory used percent too high

Пункты мониторинга: Memory used percent: Memory used percent

Особенности: avg()-Average value of a period T

Тест построителя выражений:

Максимальное значение: 100.0000

Пункты мониторинга: Memory used percent: Memory used percent

3 : Хост присоединяется к шаблону

Источник

Русские Блоги

Настройте используемую память zabbix для более точного и доступного использования памяти

[[email protected] ~]# free -m total used free shared buffers cached Mem: 995 785 209 0 6 92 -/+ buffers/cache: 686 308 Swap: 478 200 278

Доступная память: доступная память = свободная + буферы + кэшированные, т.е. 308 = 209 + 6 + 92
Используемая память: Used memory = used-buffers-cached, то есть 686 = 785-6-92

При использовании собственного шаблона Linux Template OS для zabbix для мониторинга сервера было обнаружено, что используемая память полностью заполнена. Это потому, что zabbix получает используемую память сервера через ключ vm.memory.size [used]. Но значение, полученное с помощью vm.memory.size [used] (используется 785, как показано ниже), также включает буферы и кэширование.

Буферы и кэширование также доступны серверу. Просто Linux сам использует как можно больше памяти и освобождает буферы и кешированное пространство только тогда, когда памяти недостаточно.
Доступная память, полученная с помощью vm.memory.size [available], довольно точна. Таким образом, мы изменим ключевое значение Используемой памяти, чтобы получить точное значение используемой памяти, вычтя доступную память из общей памяти.

z1

конкретный:
1. Настроить | Шаблоны | Шаблон ОС Linux, выберите Элементы, щелкните Используемая память, чтобы ввести конфигурацию, как показано ниже, перед изменением.

2. Изменить тип и формулу
Тип выберите Расчетный # Тип расчета

Ввод формулы (last («vm.memory.size [total]») — last («vm.memory.size [available]»)), вычтите доступную память из общей памяти, чтобы получить точную используемую память.

z4

Ввод формулы (100 * last («vm.memory.size [available]») / last («vm.memory.size [total]»)), разделите доступную память на общую память, чтобы получить коэффициент использования памяти.

zb-1.png

ZB-3.png

zb-4.png

спусковой крючок:

1. Configuration—>Templates—>Template OS Linux—>Triggers—>create trigger
Name: free mem less 10%
Expression:

zb-3.png

Если состояние элементов или триггера не поддерживается, возможно, возникла проблема с выражением, и вам необходимо проверить и протестировать

Память меньше 10%. В настоящее время ресурсы памяти сервера фактически ограничены. Вы можете использовать этот триггер для запуска сценария для перезапуска служб, которые занимают больше памяти. Как правило, службы на сервере относительно фиксированы. Те, кто потребляет больше памяти, — это те , Вы можете выбрать несколько перезапусков (один экземпляр с осторожностью), и лучше всего контролировать службу, чтобы избежать сценария автоматического перезапуска службы, не запускающего службу.

Источник

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.

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.

Источник

Zabbix: Create custom process monitoring (CPU, MEM) with hysteresis

How to create universal Zabbix template to monitor custom Linux process defined by name.

1. Create new Zabbix template

Go to Configuration -> Templates -> Create template and add your template name, group and description.

Create new Zabbix template

2. Add macros

We want to monitor this three parameters:

  • number of process, with alerting if it less than a certain value
  • memory usage, with alerting on high usage
  • cpu usage, with alerting on high load

So, let’s create default values for it. We can use macros as placeholders to be able re-define this values in host configuration.

Create zabbix macros

In this example we created 6 macros:

 => 70 => 2000000000 => 1 => apache2 => 10 => 1000000000

Here you can see cpu max usage 70%, max memory limit 2G, minimum 1 process running and process name apache2 for example. But we should also define normal values for trigger hysteresis to avoid flapping state (see below). So we also defined as 10% and as 1G.

3. Add items

Now we need to add incoming data items. Go to Items menu under current template and click Create item button. Create 3 items:

Zabbix create item

You can use macros as placeholder of process name to be able to change it in host configuration. So add this 3 items with 3 Keys:

proc.num[] proc.cpu.util[] proc.mem[]

Zabbix items

Be careful, some parameters have different value types. For example proc.num, proc.mem has Numeric (int), but proc.cpu.util has Numeric (float). You can check it in Key -> Select constructor or official Zabbix documentation.

Zabbix float item

4. Triggers with hysteresis

Now we need to create triggers. Let’s construct it. Go to template Triggers menu. You can use built-in Zabbix constructor by clicking Problem expression -> Add button, select item and function. For example last (most recent) T value. But it’s only one value. It can change every time. To detect hard status, when same value will repeat several times, it is better to use count function. You can get more information about functions on Zabbix official documentation.

So we want to create trigger problem expression which will be fired when memory usage will greater than 3 times in a row.

You can read this expression as: “count of last 3 values (#3) which greater (gt) than was >= 3 times”. This is means that last (most recent) 3 item values was greater then PROC_MEM_MAX 3 times in a row. So each of this three values was greater than the maximum. It is good solution to detect hard state of the problem.

But what about return to normal state? If we leave only one problem expression alone – we can get situation like this:

Zabbix trigger flapping

Every 5-10 minutes it’s flapping between greater and less than critical value! It get 3 overloaded values and fire a trigger, then it get 3 normal values and mark trigger as RESOLVED! What we shall do? We need to create hysteresis with normal value. Trigger will be in PROBLEM state till item value will decrease to $.

So click to OK event generation -> Recovery expression and add this expression:

You can read this expression like: count of last #3 item values which less or equivalent (le) than was >= 3 times.

Zabbix create trigger

Now you can add according expressions to other triggers (MEM and Number of process):

].count(#3,,gt)>>=3 ].count(#3,,le)>>=3 ].count(#3,,gt)>>=3 ].count(#3,,le)>>=3 ].count(#3,,lt)>>=3 ].count(#3,,ge)>>=3

Zabbix triggers

5. Configure host

Now we can add this template into our host. Go to Configuration -> Hosts -> your server -> Templates. And add your brand new template into server. Then we need to add according macros.

For example we want to monitor node (node.js) process on server. Let’s look at one of my node server memory usage Graph.

Node.js memory usage

In this Graph you can see that process require about 4Gb of RAM. It is normal usage (for my service). You can also see a flapping state around the red line. So in this example my hysteresis minimum should be less than red line, and maximum – greater than 4.20G, for example at 4,5G. Let’s set this values in host’s macros.

Zabbix host macros

So, my trigger will fired PROBLEM state when node process will use greater than 4,5Gb RAM 3 times in a row. And return into normal state only when memory will return to less than 4Gb 3 times in a row.

All done! Congratulations! Now we can check our data in Monitoring -> Latest data menu.

You can also download ready to use template here : linux-process.zip

Источник

Читайте также:  Установка zip linux centos
Оцените статью
Adblock
detector