ZABBIX FEATURE REQUESTS

Add/delete some modes for vm.memory.size key under FreeBSD (or all BSD) and other OS

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Trivial Trivial
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: 1.9.9 (beta)
  • Component/s: Agent (G)
  • Labels:
  • Environment:
    FreeBSD
  • Zabbix ID:
    Reviewed 2.0

Description

Now in Zabbix we have many parameters for monitoring memory under FreeBSD: vm.memory.size[<mode>]
<mode> can be:

    total
    free
    used
    shared
    cached

5 parameters! ('pfree' and 'pused' doesn't work in my servers, and doesn't work correct anyway) Ok, not bad.
But I don't know what does 'shared' and 'used' parameters mean.

If you use FreeBSD go to `top`. At head you can see memory parts:
Active, Inact, Wired, Cache, Buf and Free. You can't see 'shared' and 'used' parameters. And you don't know how to get correct or real free memory!

In order to know REAL FREE MEMory you need:
1. Get from sysctl folowing vars:

    "vm.stats.vm.v_inactive_count" * "vm.stats.vm.v_page_size" (lets call it INACT)
    "vm.stats.vm.v_cache_count" * "vm.stats.vm.v_page_size" (CACHE)
    "vm.stats.vm.v_free_count" * "vm.stats.vm.v_page_size" (FREE)


2. Calculate REAL FREE MEMory:
free_mem = INACT + CACHE + FREE

3. If you want to get REAL USED MEMory:
total_mem = "vm.stats.vm.v_page_count" * "vm.stats.vm.v_page_size" (it defines correct in zabbix)
used_mem = total_mem - free_mem

Conclusion 4 developers:
Please make correct calculation of FreeBSD memory!
You need add INACT (sysclt vm.stats.vm.v_inactive_count) mode to vm.memory.size.
Then make 'pfree' and 'pused' mode calculation as I described below (real free and real used memory).
I think you need to delete 'shared' and 'used' modes for fbsd, because it is not necessary under FreeBSD.

Thanks!

P.S. maybe it right for all BSD systems.

____________

В общем сейчас Zabbix умеет мониторить не очень-то полезные для FreeBSD (а может и для всех BSD) значения vm.memory.size:
shared и used (я даже не знаю что это за значения такие)
В то же время отсутствует мониторинг значения inactive памяти (да и active).
К тому же у меня нигде не заработали режимы pused и pfree, ди и они тоже бесполезные.

Чтобы узнать реально доступную для приложений свободную память, т.е. до того как начнет активно использоваться swap, нужно произвести рассчеты указанные выше.
Спасибо!

Issue Links

Activity

Hide
Pavel Timofeev added a comment - - edited

Готов к диалогу
Ready for dialog

Show
Pavel Timofeev added a comment - - edited Готов к диалогу Ready for dialog
Hide
Pavel Timofeev added a comment -

Алексей, а можно ли дать мне возможность отредактировать тикет? или закрыт его и создать новый? писал в не очень адекватном состоянии и хотел бы переделать его.
Can I edit this ticket? Or creating new ticket will be best solution?

Show
Pavel Timofeev added a comment - Алексей, а можно ли дать мне возможность отредактировать тикет? или закрыт его и создать новый? писал в не очень адекватном состоянии и хотел бы переделать его. Can I edit this ticket? Or creating new ticket will be best solution?
Hide
richlv added a comment -

just add an updated summary as a new comment here, somebody surely will handle it from there

Show
richlv added a comment - just add an updated summary as a new comment here, somebody surely will handle it from there
Hide
Pavel Timofeev added a comment - - edited

Thank you for fast reply!

Maybe I will repeat myself.

I just want to say: Please, add some new modes for vm.memory.size key and delete useless modes!

It need for FreeBSD and maybe other BSD systems. If you want I'll check it!
Memory organization in FreeBSD is different than in Linux.
Existing modes like 'used', 'shared', 'pfree' and 'pused' don't need under FreeBSD(allBSD?). It useless.

Also we already have 'total', 'free' and 'cached' modes. It usefull under FreeBSD.
As I see in src (src/libs/zbxsysinfo/freebsd/memory.c) 'total' memory calculate as "vm.stats.vm.v_page_count" * "vm.stats.vm.v_page_size".
'free' memory = "vm.stats.vm.v_free_count" * "vm.stats.vm.v_page_size".
'cached' memory = "vm.stats.vm.v_cache_count" * "vm.stats.vm.v_page_size"
This is good and right!

But we also need 'active', 'inactive' and 'wired' modes for vm.memory.size key under FreeBSD(BSD)!
We may calculate 'active' mem as "vm.stats.vm.v_active_count" * "vm.stats.vm.v_page_size"
'inactive' = "vm.stats.vm.v_inactive_count" * "vm.stats.vm.v_page_size"
'wired' = "vm.stats.vm.v_wire_count" * "vm.stats.vm.v_page_size" (sysctl var contains 'wire', not 'wired')

If you add up all this memory you get 'total' memory.
I.e. 'total' = 'active' + 'wired' + 'cache' + 'inactive' + 'free'

In FreeBSD 'free' memory doesn't mean REAL free memory available for programs.
Actually used memory in FreeBSD is 'active' + 'wired'. And real free mem is 'cache' + 'inactive' + 'free'.
Under load 'active' and 'wired' types of memory are growing and other types are decreasing.
When 'cache', 'inactive' and 'free' will be tiny system will be active use swap.

I can provied graphics if you want.
And if you don't have enough time I can try to provide patches for src/libs/zbxsysinfo/freebsd/memory.c, but I have small experience in C programming.

Show
Pavel Timofeev added a comment - - edited Thank you for fast reply! Maybe I will repeat myself. I just want to say: Please, add some new modes for vm.memory.size key and delete useless modes! It need for FreeBSD and maybe other BSD systems. If you want I'll check it! Memory organization in FreeBSD is different than in Linux. Existing modes like 'used', 'shared', 'pfree' and 'pused' don't need under FreeBSD(allBSD?). It useless. Also we already have 'total', 'free' and 'cached' modes. It usefull under FreeBSD. As I see in src (src/libs/zbxsysinfo/freebsd/memory.c) 'total' memory calculate as "vm.stats.vm.v_page_count" * "vm.stats.vm.v_page_size". 'free' memory = "vm.stats.vm.v_free_count" * "vm.stats.vm.v_page_size". 'cached' memory = "vm.stats.vm.v_cache_count" * "vm.stats.vm.v_page_size" This is good and right! But we also need 'active', 'inactive' and 'wired' modes for vm.memory.size key under FreeBSD(BSD)! We may calculate 'active' mem as "vm.stats.vm.v_active_count" * "vm.stats.vm.v_page_size" 'inactive' = "vm.stats.vm.v_inactive_count" * "vm.stats.vm.v_page_size" 'wired' = "vm.stats.vm.v_wire_count" * "vm.stats.vm.v_page_size" (sysctl var contains 'wire', not 'wired') If you add up all this memory you get 'total' memory. I.e. 'total' = 'active' + 'wired' + 'cache' + 'inactive' + 'free' In FreeBSD 'free' memory doesn't mean REAL free memory available for programs. Actually used memory in FreeBSD is 'active' + 'wired'. And real free mem is 'cache' + 'inactive' + 'free'. Under load 'active' and 'wired' types of memory are growing and other types are decreasing. When 'cache', 'inactive' and 'free' will be tiny system will be active use swap. I can provied graphics if you want. And if you don't have enough time I can try to provide patches for src/libs/zbxsysinfo/freebsd/memory.c, but I have small experience in C programming.
Hide
Oleksiy Zagorskyi added a comment -

forum thread http://www.zabbix.com/forum/showthread.php?t=21826
I think it's created by reporter Pavel Timofeev

Show
Oleksiy Zagorskyi added a comment - forum thread http://www.zabbix.com/forum/showthread.php?t=21826 I think it's created by reporter Pavel Timofeev
Hide
Pavel Timofeev added a comment -

Yes, it's me.

Show
Pavel Timofeev added a comment - Yes, it's me.
Hide
Pavel Timofeev added a comment - - edited

patch that add 3 new modes for vm.memory.size in Zabbix agent under FreeBSD
http://narod.ru/disk/11988360001/zbx_bsd_mem.patch.html
or
http://pastebin.com/e98rru5v

It works good. Just checked!

Show
Pavel Timofeev added a comment - - edited patch that add 3 new modes for vm.memory.size in Zabbix agent under FreeBSD http://narod.ru/disk/11988360001/zbx_bsd_mem.patch.html or http://pastebin.com/e98rru5v It works good. Just checked!
Hide
Pavel Timofeev added a comment -
Show
Pavel Timofeev added a comment - than remove shared and used modes http://narod.ru/disk/11991925001/zbx_bsd_mem.patch2.html or http://pastebin.com/YM3iqdh1
Hide
Pavel Timofeev added a comment - - edited

than 3rd patch for correct calculation of pfree and pused
http://narod.ru/disk/12077306001/zbx_bsd_mem.patch3.html
or
http://pastebin.com/Ec3D6bja
links was changed: forgot one small '()'

Show
Pavel Timofeev added a comment - - edited than 3rd patch for correct calculation of pfree and pused http://narod.ru/disk/12077306001/zbx_bsd_mem.patch3.html or http://pastebin.com/Ec3D6bja links was changed: forgot one small '()'
Hide
Oleksiy Zagorskyi added a comment -

Pavel, it better to attach here all your patches
See to "More Actions -> Attach File"

Show
Oleksiy Zagorskyi added a comment - Pavel, it better to attach here all your patches See to "More Actions -> Attach File"
Hide
Pavel Timofeev added a comment - - edited

Cumulative patch
All patches for Zabbix 1.8.5.
Works on FreeBSD 8.2 RELEASE i386 and amd64.

Show
Pavel Timofeev added a comment - - edited Cumulative patch All patches for Zabbix 1.8.5. Works on FreeBSD 8.2 RELEASE i386 and amd64.
Hide
Pavel Timofeev added a comment -

Small change in patch. Forgot one ()

You can test it. Just copy this file to /usr/ports/net-mgmt/zabbix-server/files/ directory and reinstall zabbix_agent

Show
Pavel Timofeev added a comment - Small change in patch. Forgot one () You can test it. Just copy this file to /usr/ports/net-mgmt/zabbix-server/files/ directory and reinstall zabbix_agent
Hide
Pavel Timofeev added a comment -

This ticket valid only for FreeBSD. Other BSD - other memory.

Show
Pavel Timofeev added a comment - This ticket valid only for FreeBSD. Other BSD - other memory.
Hide
Pavel Timofeev added a comment -

By analogy with 'pfree' and 'pused' and I'll add calculations for 'available' and 'used' memory types.
And I think 'pfree' memory type need to rename to 'pavailable'.

Show
Pavel Timofeev added a comment - By analogy with 'pfree' and 'pused' and I'll add calculations for 'available' and 'used' memory types. And I think 'pfree' memory type need to rename to 'pavailable'.
Hide
Pavel Timofeev added a comment -

Latest patch. Tested under FreeBSD 8.2 RELEASE and Zabbix-1.8.5 from ports tree.
Works fine. Please, test it if you have a time.
For pfree and pused memory types in item menu you need choose - Type of information: Numeric (float), Units: %
other types - Type of information: Numeric (insigned), Units: B.

Show
Pavel Timofeev added a comment - Latest patch. Tested under FreeBSD 8.2 RELEASE and Zabbix-1.8.5 from ports tree. Works fine. Please, test it if you have a time. For pfree and pused memory types in item menu you need choose - Type of information: Numeric (float), Units: % other types - Type of information: Numeric (insigned), Units: B.
Hide
Pavel Timofeev added a comment - - edited

TOTAL RESULT:
Please exam attached patch.
It adds some freebsd specific types of memory for vm.memory.size and makes correct calculation for pused, pfree, etc.

And I think 'pfree' memory type need to rename to 'pavailable'.

Waiting for you marks!

Show
Pavel Timofeev added a comment - - edited TOTAL RESULT: Please exam attached patch. It adds some freebsd specific types of memory for vm.memory.size and makes correct calculation for pused, pfree, etc. And I think 'pfree' memory type need to rename to 'pavailable'. Waiting for you marks!
Hide
Pavel Timofeev added a comment -

I'm showing a few screenshots of server that works with my patch.
Can you see that I maybe right?

Show
Pavel Timofeev added a comment - I'm showing a few screenshots of server that works with my patch. Can you see that I maybe right?
Hide
Pavel Timofeev added a comment -

Please, talk with me =)

Show
Pavel Timofeev added a comment - Please, talk with me =)
Hide
Pavel Timofeev added a comment -
Show
Pavel Timofeev added a comment - Please, read http://www.absolutebsd.com/AbsoluteBSD18.pdf
Hide
Pavel Timofeev added a comment -

small correction: don't delete "shared" memory type (like in my patch).
and may be add buffer mem type will be useful.

Show
Pavel Timofeev added a comment - small correction: don't delete "shared" memory type (like in my patch). and may be add buffer mem type will be useful.
Hide
Pavel Timofeev added a comment -

When you'll solve this PR I would like to discuss about other OS and their memory types.

Show
Pavel Timofeev added a comment - When you'll solve this PR I would like to discuss about other OS and their memory types.
Hide
richlv added a comment -

it might be worth attaching latest patch to this issue

Show
richlv added a comment - it might be worth attaching latest patch to this issue
Hide
Pavel Timofeev added a comment -

I want to discuss about some thing like common type of memory. It is general problem.
Can I post here my reflections?

Show
Pavel Timofeev added a comment - I want to discuss about some thing like common type of memory. It is general problem. Can I post here my reflections?
Hide
Pavel Timofeev added a comment -

All existing monitoring things (like snmp and monitoring systems) are imbrued with linuxism.

For monitoring purposes:
Linux has some memory types: Used, Free, Shared, Buffers, Cached. And in most cases all monitoring systems oriented to these.

But other UNIX's have similar and different types:
FreeBSD/DragonflyBSD: Active, Inactive, Wired, Cache, Buffer (for UFS only), Free, Shared.
OpenBSD: Real active, Real total, Free, Shared, Buf, Cached.
NetBSD (similar to freebsd): Active, Inactive, Wired, Exec, File, Free, Buff, Shared.
OpenSolaris/OpenIndiana may has own types.

We need to think about it: this types are responsible for different things.
For example, for NetBSD http://www.selonen.org/arto/netbsd/
or for FreeBSD http://www.absolutebsd.com/AbsoluteBSD18.pdf

May be we need to introduce COMMON types like Available and Filled (for example) and specific types for each unix.

Show
Pavel Timofeev added a comment - All existing monitoring things (like snmp and monitoring systems) are imbrued with linuxism. For monitoring purposes: Linux has some memory types: Used, Free, Shared, Buffers, Cached. And in most cases all monitoring systems oriented to these. But other UNIX's have similar and different types: FreeBSD/DragonflyBSD: Active, Inactive, Wired, Cache, Buffer (for UFS only), Free, Shared. OpenBSD: Real active, Real total, Free, Shared, Buf, Cached. NetBSD (similar to freebsd): Active, Inactive, Wired, Exec, File, Free, Buff, Shared. OpenSolaris/OpenIndiana may has own types. We need to think about it: this types are responsible for different things. For example, for NetBSD http://www.selonen.org/arto/netbsd/ or for FreeBSD http://www.absolutebsd.com/AbsoluteBSD18.pdf May be we need to introduce COMMON types like Available and Filled (for example) and specific types for each unix.
Hide
Aleksandrs Saveljevs added a comment - - edited

Pavel, thanks for the inspiration! Below is a list of user-visible changes that were done under this issue.

  • Changed formatting for "system.localtime[local]". It used to return data in the format "2000-1-2,3:4:5.67,+2:0", now it returns data in the format "2000-01-02,03:04:05.067,+02:00" (note the leading zeros).
  • Documented which items are indeed available on Mac OS X. Added support for "net.if.collisions", "net.if.in", "net.if.out", "net.if.total", "system.boottime", "system.cpu.num[online]", "vfs.fs.discovery" for Mac OS X.
  • Added "net.tcp.listen" on Mac OS X. Added "net.udp.listen" on Mac OS X, FreeBSD, and Solaris.
  • Item "vm.memory.size[shared]" always returned 0 on Linux 2.6, removed it. Left it only for Linux 2.4. Dropped support for Linux 2.3 in memory-related modules.
  • Removed items "vm.memory.size[pfree]" on all platforms that supported it for reasons described below.

Now, the main part. As Pavel mentioned, different operating systems use different memory types and different terms to describe them. We have decided that item "vm.memory.size" will support all these specific terms for each platform: for instance, "vm.memory.size[wired]" on FreeBSD and "vm.memory.size[exec]" on NetBSD.

However, sometimes these specific memory types are not needed. What is really needed is a user-level estimate of how much memory is used and how much memory is available. Items "vm.memory.size[used]", "vm.memory.size[pused]" and "vm.memory.size[available]", "vm.memory.size[pavailable]" are intended to provide these estimates. Note that "vm.memory.size[used]" plus "vm.memory.size[available]" do 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 (note that "free" here is a specific memory term, thus "pfree" is not very useful) are considered available, because these kinds of memories can be given instantly to processes that request more memory. So, for example, inactive memory is both used and available simultaneously. Because of this, item "vm.memory.size[used]" is designed for informational purposes only, while item "vm.memory.size[available]" is designed for triggers. These user-level estimate items are available for all platforms.

The full list of supported arguments to "vm.memory.size" is available in the documentation.

What still remains to be done is to figure out the purpose of "vm.memory.size[buffers]", "vm.memory.size[cached]", "vm.memory.size[shared]" on NetBSD and "vm.memory.size[cached]", "vm.memory.size[shared]" on OpenBSD. Another thing is that on OpenBSD the sum of "vm.memory.size[used]" and "vm.memory.size[available]" is less than "vm.memory.size[total]", which is also something that needs to be improved.

Show
Aleksandrs Saveljevs added a comment - - edited Pavel, thanks for the inspiration! Below is a list of user-visible changes that were done under this issue.
  • Changed formatting for "system.localtime[local]". It used to return data in the format "2000-1-2,3:4:5.67,+2:0", now it returns data in the format "2000-01-02,03:04:05.067,+02:00" (note the leading zeros).
  • Documented which items are indeed available on Mac OS X. Added support for "net.if.collisions", "net.if.in", "net.if.out", "net.if.total", "system.boottime", "system.cpu.num[online]", "vfs.fs.discovery" for Mac OS X.
  • Added "net.tcp.listen" on Mac OS X. Added "net.udp.listen" on Mac OS X, FreeBSD, and Solaris.
  • Item "vm.memory.size[shared]" always returned 0 on Linux 2.6, removed it. Left it only for Linux 2.4. Dropped support for Linux 2.3 in memory-related modules.
  • Removed items "vm.memory.size[pfree]" on all platforms that supported it for reasons described below.
Now, the main part. As Pavel mentioned, different operating systems use different memory types and different terms to describe them. We have decided that item "vm.memory.size" will support all these specific terms for each platform: for instance, "vm.memory.size[wired]" on FreeBSD and "vm.memory.size[exec]" on NetBSD. However, sometimes these specific memory types are not needed. What is really needed is a user-level estimate of how much memory is used and how much memory is available. Items "vm.memory.size[used]", "vm.memory.size[pused]" and "vm.memory.size[available]", "vm.memory.size[pavailable]" are intended to provide these estimates. Note that "vm.memory.size[used]" plus "vm.memory.size[available]" do 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 (note that "free" here is a specific memory term, thus "pfree" is not very useful) are considered available, because these kinds of memories can be given instantly to processes that request more memory. So, for example, inactive memory is both used and available simultaneously. Because of this, item "vm.memory.size[used]" is designed for informational purposes only, while item "vm.memory.size[available]" is designed for triggers. These user-level estimate items are available for all platforms. The full list of supported arguments to "vm.memory.size" is available in the documentation. What still remains to be done is to figure out the purpose of "vm.memory.size[buffers]", "vm.memory.size[cached]", "vm.memory.size[shared]" on NetBSD and "vm.memory.size[cached]", "vm.memory.size[shared]" on OpenBSD. Another thing is that on OpenBSD the sum of "vm.memory.size[used]" and "vm.memory.size[available]" is less than "vm.memory.size[total]", which is also something that needs to be improved.
Hide
Aleksandrs Saveljevs added a comment -

Available in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-1024 .

Show
Aleksandrs Saveljevs added a comment - Available in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-1024 .
Hide
Pavel Timofeev added a comment -

Good explanation and solution =) Thank you very much!

Show
Pavel Timofeev added a comment - Good explanation and solution =) Thank you very much!
Hide
Aleksandrs Saveljevs added a comment - - edited

One of the things I seem to have not done is add division by zero checks in vm.memory.size[pfree] and vm.memory.size[pavailable] for all platforms. I am not sure they are needed, though.

Show
Aleksandrs Saveljevs added a comment - - edited One of the things I seem to have not done is add division by zero checks in vm.memory.size[pfree] and vm.memory.size[pavailable] for all platforms. I am not sure they are needed, though.
Hide
dimir added a comment -

I guess you meant pused and pavailable. The checks are partly there so I think it makes sense to add the missing ones.

Show
dimir added a comment - I guess you meant pused and pavailable. The checks are partly there so I think it makes sense to add the missing ones.
Hide
dimir added a comment - - edited

So, as I mentioned above currently vm.memory.size checks support "pused" instead of "pfree". Let's try to use "pused" on netbsd 5.0:

for i in total used pused; do echo -n "$i : "; bin/zabbix_get -s netbsd50 -k vm.memory.size[$i]; done
total : 251596800
used : 310284288
pused : 123.326007

"used" is greater than "total" so we end up with used 123 %. This is because "used" includes file pages, which are not included in "total". Let's check the description of vm.memory.size[used] in 2.0 manual:

"Note that 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, item vm.memory.size[used] is designed for informational purposes only, while item vm.memory.size[available] is designed to be used in triggers."

This sounds logical but do we really want to support vm.memory.size[pused]? If "used" is informative, that's OK but I don't see much sense in relating this value to "total".

Opinions?

Show
dimir added a comment - - edited So, as I mentioned above currently vm.memory.size checks support "pused" instead of "pfree". Let's try to use "pused" on netbsd 5.0: for i in total used pused; do echo -n "$i : "; bin/zabbix_get -s netbsd50 -k vm.memory.size[$i]; done total : 251596800 used : 310284288 pused : 123.326007 "used" is greater than "total" so we end up with used 123 %. This is because "used" includes file pages, which are not included in "total". Let's check the description of vm.memory.size[used] in 2.0 manual: "Note that 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, item vm.memory.size[used] is designed for informational purposes only, while item vm.memory.size[available] is designed to be used in triggers." This sounds logical but do we really want to support vm.memory.size[pused]? If "used" is informative, that's OK but I don't see much sense in relating this value to "total". Opinions?
Hide
dimir added a comment - - edited

(1) "Inactive" in *BSD systems should not be included in "used" calculation. The inactive memory has valid content, but is marked as not used.

<dimir> Now this looks much better:

$ for i in total used pused available pavailable; do echo -n "$i : "; bin/zabbix_get -s netbsd50 -k vm.memory.size[$i]; done
total : 251596800
used : 80326656
pused : 31.926740
available : 176644096
pavailable : 70.209198

RESOLVED in r23816

<dimir> CLOSED, moved to (2)

Show
dimir added a comment - - edited (1) "Inactive" in *BSD systems should not be included in "used" calculation. The inactive memory has valid content, but is marked as not used. <dimir> Now this looks much better: $ for i in total used pused available pavailable; do echo -n "$i : "; bin/zabbix_get -s netbsd50 -k vm.memory.size[$i]; done total : 251596800 used : 80326656 pused : 31.926740 available : 176644096 pavailable : 70.209198 RESOLVED in r23816 <dimir> CLOSED, moved to (2)
Hide
dimir added a comment - - edited

(2) Tested successfully. Now someone will have to check my changes from r23601 (including) up to the latest.

<Sasha> CLOSED

Show
dimir added a comment - - edited (2) Tested successfully. Now someone will have to check my changes from r23601 (including) up to the latest. <Sasha> CLOSED
Hide
dimir added a comment - - edited

(3) Please review next changes to docs before I publish them:

  • describe vm.memory.size parameters, I propose like this:
    total - Total real memory available.
    free - Memory that is readily available to any entity requesting memory.
    active - Memory currently in use or very recently used, and so it is in RAM.
    inactive - Memory that is marked as not used.
    wired - Memory that is marked to always stay in RAM. It is never moved to disk.
    pinned - Same as wired.
    anon - Memory not associated with a file (can not be re-read from it).
    exec - Executable code, typically from a (program) file.
    file - Cache for contents of recently accessed files.
    buffers - Cache for things like file system metadata.
    cached - Cache for various things.
    shared - Memory that may be simultaneously accessed by multiple processes.
    used - Active + wired memory.
    pused - Active + wired memory in relation to total.
    available - Inactive + free memory.
    pavailable - Inactive + free memory in relation to total.
  • on aix available and free is the same thing
  • on solaris available and free is the same thing
  • add 'active' support for hpux
  • linux/shared works only on kernel 2.4

<richlv> 'real' - how about 'physical' ?
and, of course, proper capitalisation for os names

<dimir> I agree to all above.

<Sasha> added support of vm.memory.size[active] on HPUX
http://www.zabbix.com/documentation/2.0/manual/appendix/items/supported_by_platform

Show
dimir added a comment - - edited (3) Please review next changes to docs before I publish them:
  • describe vm.memory.size parameters, I propose like this: total - Total real memory available. free - Memory that is readily available to any entity requesting memory. active - Memory currently in use or very recently used, and so it is in RAM. inactive - Memory that is marked as not used. wired - Memory that is marked to always stay in RAM. It is never moved to disk. pinned - Same as wired. anon - Memory not associated with a file (can not be re-read from it). exec - Executable code, typically from a (program) file. file - Cache for contents of recently accessed files. buffers - Cache for things like file system metadata. cached - Cache for various things. shared - Memory that may be simultaneously accessed by multiple processes. used - Active + wired memory. pused - Active + wired memory in relation to total. available - Inactive + free memory. pavailable - Inactive + free memory in relation to total.
  • on aix available and free is the same thing
  • on solaris available and free is the same thing
  • add 'active' support for hpux
  • linux/shared works only on kernel 2.4
<richlv> 'real' - how about 'physical' ? and, of course, proper capitalisation for os names <dimir> I agree to all above. <Sasha> added support of vm.memory.size[active] on HPUX http://www.zabbix.com/documentation/2.0/manual/appendix/items/supported_by_platform
Hide
Pavel Timofeev added a comment -

> available - Inactive + free memory
> pavailable - Inactive + free memory in relation to total

why don't you add cached memory to available calculation?

Show
Pavel Timofeev added a comment - > available - Inactive + free memory > pavailable - Inactive + free memory in relation to total why don't you add cached memory to available calculation?
Hide
dimir added a comment -

Great point, Pavel. It's actually there, I must fix the description. Also I spotted a couple of platforms where this isn't included in available.

Show
dimir added a comment - Great point, Pavel. It's actually there, I must fix the description. Also I spotted a couple of platforms where this isn't included in available.
Hide
dimir added a comment -

Fixed in pre-1.9.9 r24902.

Show
dimir added a comment - Fixed in pre-1.9.9 r24902.

People

Vote (2)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: