CHAPTER 10
Troubleshooting Memory
This chapter contains the following sections:
•
About Troubleshooting Memory, page 69
•
General/High Level Assessment of Platform Memory Utilization, page 70
•
User Processes, page 70
•
Built-in Platform Memory Monitoring, page 71
About Troubleshooting Memory
Dynamic random access memory (DRAM) is a limited resource on all platforms and must be controlled or
monitored to ensure utilization is kept in check.
Cisco NX-OS uses memory in the following three ways:
• Page cache—When you access files from persistent storage (CompactFlash), the kernel reads the data
into the page cache, which means that when you access the data in the future, you can avoid the slow
access times that are associated with disk storage. Cached pages can be released by the kernel if the
memory is needed by other processes. Some file systems (tmpfs) exist purely in the page cache (for
example, /dev/sh, /var/sysmgr, /var/tmp), which means that there is no persistent storage of this data and
that when the data is removed from the page cache, it cannot be recovered. tmpfs-cached files release
page-cached pages only when they are deleted.
• Kernel—The kernel needs memory to store its own text, data, and Kernel Loadable Modules (KLMs).
KLMs are pieces of code that are loaded into the kernel (as opposed to being a separate user process).
An example of kernel memory usage is when an inband port driver allocates memory to receive packets.
• User processes—This memory is used by Cisco NX-OS or Linux processes that are not integrated in
the kernel (such as text, stack, heap, and so on).
When you are troubleshooting high memory utilization, you must first determine what type of utilization is
high (process, page cache, or kernel). Once you have identified the type of utilization, you can use additional
troubleshooting commands to help you figure out which component is causing this behavior.
Cisco Nexus 9000 Series NX-OS Troubleshooting Guide, Release 7.x
69