What is the meaning of Wired Memory in OS X? [duplicate]
I'm trying to figure out what is using all of the memory in my Macbook Pro running OS X Lion. I have 8 GB of memory total. When I quit all active programs except Finder and Activity Monitor, then run a memory cleanup (FreeMemory) it shows about 5 GB of Free Memory, 1 GB of Active Memory, and 1.5 of Wired memory. Support docs say Wired Memory is full of stuff that "can't be moved to disk". What is taking up all of that memory? Is it the menubar processes? I have mozy, last.fm, dropbox, and growl running in the menubar but they all appear in Activity Manager and don't appear to be using a significant amount of memory. I also run Parallels but it is shut down completely so I thought all of it's stuff should be written to disk. Is it just Mac OS X using a reserved chunk of memory and labeling it "Wired"?
From what I can tell, wired memory belongs to the kernel, the innermost core of Mac OS X. It's many layers removed from the icons in the menubar, which are just ordinary apps showing themselves in an odd way.
Wired memory is used for some of the core functions of the operating system—things like keeping track of all the applications on your system, or open files and network connections, or chunks of memory used by various drivers. The "page tables" that form a map of your system's memory are also stored in wired memory, and a system with more memory needs larger page tables. I suspect that the memory used by the integrated video chips in most Macs is wired as well, but I can't find anything that says that outright. In any case, much of this information is needed to manage and access memory, and so it can't itself be swapped out to disk!
To understand why, imagine an enormous library. Think of, for example, the Bodleian Library at the University of Oxford, which has eleven million printed items. There's no way you could possibly fit all that stuff into a single building—certainly not one in the middle of a university campus.
So instead, imagine that the librarians construct a vast warehouse. (The real Bodleian Library has about forty sub-libraries of various descriptions, plus storage for really rare books, but this is a thought experiment.) Most of the books are kept in the warehouse, but anything that's been used recently is kept in the library. If you show up at the library looking for a book, and it's in the stacks there, you can read it immediately. If not, ask a librarian and the book you want will be transported from the warehouse and given to you the next day.
The information in wired memory, then, would be things like the card catalog, keys to the book delivery trucks, and maps of the route to the warehouse. If you stored these things in the warehouse, you could never retrieve books to bring them back to the library—so they must be kept in the library at all times, lest the whole system break down.
Anyway, getting back to practical considerations: wired memory is basically used by your computer for internal bookkeeping of various sorts. You shouldn't worry about it.
And don't worry if you have lots of "inactive" memory and little "free" memory, either. Inactive memory is basically memory that Mac OS is keeping something in on the off chance it's needed again; if your system needs that memory for something else, it'll be converted to free memory without any performance hit.
To extend the library metaphor, imagine that the library keeps books that have been recently used in the stacks. The space is there in the stacks; there's no use leaving it empty, so you might as well keep the books you already have there. There's no harm in it, and sometimes someone will be able to pick up a book immediately that he would otherwise have had to wait for.
Similarly, inactive memory can only speed things up; it can't hurt your computer, so don't worry about it being too high.
Really, you shouldn't worry about your memory use unless wired + active starts getting close to the 8 GB in your computer. That's when you could get into trouble, because that's when Mac OS will start consuming disk space to add "extra" memory, damaging performance considerably.
Otherwise, you might as well have something in that memory. Ultimately, unused memory is just a waste of power—if you have it, you might as well put it to use.
Reading system memory usage in Activity Monitor
from support.apple.com gives a detailed explanation about the different "types" of RAM.
-
Free memory: This is RAM that's not being used.
-
Wired memory: Information in this memory can't be moved to the hard disk, so it must stay in RAM. The amount of Wired memory depends on the applications you are using.
-
Active memory: This information is currently in memory, and has been recently used.
-
Inactive memory: This information in memory is not actively being used, but was recently used.
-
Used: This is the total amount of memory used.
For a definitive, although OS specific, answer, from Memory Usage Performance Guidelines:
Wired Memory
Wired memory (also called resident memory) stores kernel code and data structures that must never be paged out to disk. Applications, frameworks, and other user-level software cannot allocate wired memory. However, they can affect how much wired memory exists at any time. For example, an application that creates threads and ports implicitly allocates wired memory for the required kernel resources that are associated with them.
Table 2 lists some of the wired-memory costs for application-generated entities
As you can see, every thread, process, and library contributes to the resident footprint of the system. In addition to your application using wired memory, however, the kernel itself requires wired memory for the following entities:
- VM objects
- the virtual memory buffer cache
- I/O buffer caches
- drivers
Wired data structures are also associated with the physical page and map tables used to store virtual-memory mapping information, Both of these entities scale with the amount of available physical memory. Consequently, when you add memory to a system, the amount of wired memory increases even if nothing else changes. When a computer is first booted into the Finder, with no other applications running, wired memory can consume approximately 14 megabytes of a 64 megabyte system and 17 megabytes of a 128 megabyte system.
Wired memory pages are not immediately moved back to the free list when they become invalid. Instead they are “garbage collected” when the free-page count falls below the threshold that triggers page out events.
Mac OS X is a modern OS, thus is uses virtual memory to make it appear to apps that memory space is no object. Most recently used apps will tend to be moved to RAM, less used apps will be moved to the hard disk (page ins and page outs are a sign of that movement). The OS will not use the hard drive until it runs out of space in RAM.
There is no specific app that will "cause" this wired memory to accumulate. The OS is managing every parts of itself and the apps you launched to make the best use of the RAM you have.
Quitting unused apps, or better yet, restarting the computer will be the most efficient way to "clean up" the memory. FreeMemory does a good job, and am surprised the OS isn't doing such operation from time to time… it's nice to have a status on free memory though!