计算机的内存会被四样东西占用:文件系统缓存、密切共享内存、内核、进程。其中,密切共享内存是像Oracle这样的大型数据库涉及到的。通常情况下,文件系统缓存、内核、进程是最主要的内存消耗者。
内存涉及的一些名词:
physical memory 物理内存
virtual memory 虚拟内存
mapping 映射
VMZ - Virtual Memory Size 虚拟内存量
RSS - Resident memory Size 驻留内存量
Shared memory 共享内存
Anonymous memory 匿名内存
swap 交换区
reservation 保留地
page 页
segments 段
虚拟内存就是虚拟地址空间
驻留内存是一个进程所映射的物理内存,一个进程可以对同一块物理内存(如果是共享内存的话)有多个映射,也可以是唯一映射,所以,RSS不能够说明进程的实际占用的物理内存量。
匿名内存是交换空间提供的,交换区分两种 - 磁盘交换区和内存交换区,匿名内存保留地取自磁盘交换区,而它的分配来自内存交换区,当匿名内存被malloc系统调用请求时,在交换区形成保留地,在/dev/zero作出映射,磁盘交换区会一直使用直到用完,然后由内存交换区接班,被映射了却没有被使用的内存空间处于保留态。
把内存量子化,分成许多细小的单元,叫作“页”,页大小是由处理器内存管理单元(MMU)决定的。
构成一个进程的页被分成几个“段”,一个进程的段至少有下面这四个:
可执行文本、可执行数据、堆空间、栈。
查看系统的内存使用情况的工具是free、vmstat
查看进程的内存使用情况的主要工具有 top、ps、pmap。
# free -m 以兆为单位报告内存状况
# vmstat -S M 3 以兆为单位,隔三秒报告一次内存状况
# vmstat -S M 3 10 以兆为单位,隔三秒报告一次内存状况,只报告十次
阅读(1594) | 评论(0) | 转发(0) |