[j-nsp] Why doesn't memory utilization in "show chassis routing-engine" count in "Inactive" and "Buffers" memory?

Krasimir Avramski krasi at smartcom.bg
Tue Oct 27 13:09:19 EDT 2015


Hi,

It used to be calculated like (Total - Free - Inactive - Cached)/Total, but
changed somewhere in 7.x.

>From the book: "Dirty pages need to be paged out, but flushing a page is
extremely expensive compared to freeing a clean page. Thus, dirty pages are
given extra time on the inactive queue by cycling them through the queue
twice before being flushed. They cycle through the list once more while being
cleaned. This extra time on the inactive queue will reduce unnecessary I/O
caused by prematurely paging out an active page."

So, dirty pages are slowly "cleaned" and moved from inactive to cache(for
the next cycle of pageout process which runs when the system is under
memory pressure or when the queues are out of balance) and cache pages are
freed to maintain a minimum number of free pages - consequently Inact
memory is not so easily accessible by the kernel.

Regards,
Krasi

On 9 October 2015 at 15:57, Martin T <m4rtntns at gmail.com> wrote:

> Hi,
>
> according to "The Design and Implementation of the FreeBSD Operating
> System"(https://books.google.ee/books?id=KfCuBAAAQBAJ&pg=PA290&lpg=PA290)
> kernel divides used memory into five lists: Active, Inactive, Wired,
> Cache and Free. In addition, some memory is used for disk caching.
> Utilization of those lists can be seen with "top" or "show system
> processes extensive" commands. For example:
>
> Mem: 130M Active, 42M Inact, 51M Wired, 14M Cache, 34M Buf, 764K Free
> Swap: 512M Total, 512M Free
>
>
> So actually *used* memory is Wired and Active and if those two pools
> need additional amount of memory then this is taken from Inactive,
> Cached, Buffers or Free pools. This makes me wonder why "show chassis
> routing-engine" command calculates memory according to following
> formula(at least on M and MX series):
>
> Memory utilization % = (Total - Free - Cached)/Total
>
> In other words, it doesn't count in Inactive and Buffers lists as free
> memory while actually those should be available for Active and Wired
> immediately if needed. This makes one believe that memory utilization
> on his RE is always very high.
>
>
> Why doesn't memory utilization in "show chassis routing-engine" count
> in Inactive and Buffers memory?
>
>
>
> thanks,
> Martin
> _______________________________________________
> juniper-nsp mailing list juniper-nsp at puck.nether.net
> https://puck.nether.net/mailman/listinfo/juniper-nsp
>


More information about the juniper-nsp mailing list