内存指标
一、内存【free -m】
1.内存分物理内存和虚拟内存
2.物理内存4kb一页
3.虚拟内存和计算机的位数相关,N位系统虚拟内存就是 2的N次方
4.虚拟内存在物理内存中映射,物理内存中找不到就回去磁盘找,找到之后拿到物理内存
二、内存映射
1.CPU和内存是怎么交互的?
三、缺页中断 (缺页异常)【sar -B 1 10】
1.缺页中断(缺页异常)分为:缺页硬中断(硬缺页异常)和缺页软中断(软缺页异常)
a..缺页硬中断(硬缺页异常)叫 Hard Page Fault 也被称为Major Page Fault。物理内存中到不到数据,需要打开磁盘,此时就会返回硬缺页的错误。(可能是物理内存空间不足,缓存cache占用过多,内存交换到了swap里面去了)。需要重新维护映射关系,此时就会发生软中断
什么是swap空间:内存交换空间 ,内存空间不足需要去磁盘拿部分空间充当内存交换空间,从磁盘中交换到内存中数据的数量si,从内存中交换到磁盘中数据的数量so。单位页 一页是4kb 有的资料直接是kb
如何开辟swap空间?
具体命令看最后的命令段落
什么时候会用到swap空间?
物理内存使用超出一定指标会使用swap空间,这个可以设置 具体看最后的命令
--现在基本上不存在了,公司应该不会穷到用磁盘作为临时的内存空间。
b.缺页软中断(软缺页异常)叫 Soft Page Fault 也被称之为 Minor Page Fault。物理内存中存在对应页,但是没有映射关系,就是软中断。
sss:说白了就是 物理内存中找到了对应的页帧,但是没有维护映射关系 就是软中断 。物理内存找不到数据要打开磁盘就是硬中断,此时还要维护映射关系,及每次硬中断都伴随一次软中断。
四、 命令:
查看内存 【free -m】
查看缺页中断 【sar -B 1 10】
查看cache 【vmstat 1 10】
磁盘回写数据 【sync && echo "3" > /proc/sys/vm/drop_caches】
开辟swap空间
mkdir swap
dd if=/dev/zero of=swapfile bs=1024 count=2000000【开辟2gswap空间】
mkswap swapfile 转换
swapon swapfile 激活
swapoff swapfile 卸载
查看swap空间使用条件【 cat /proc/sys/vm/swappiness】 默认是内存使用到60%以上的情况下会使用swap空间
修改swap空间使用条件 【sudo sysctl vm.swappiness=10 】临时修改swappiness比例
开启swap 【swapon -a 】
关闭swap 【swapoff -a 】
性能分析工具中有脚本可以直接看出那些进程那些东西占用内存最大
五、异常分析和解决:
如果是 缓存cache占用过多,我们可以手动让缓存数据回写到磁盘 【sync && echo "3" > /proc/sys/vm/drop_caches】
如果swap 空间满了会触发oomkiller (内存溢出杀进程) 结果就是系统会杀死占用内存最大的进程。如果确实为了省钱使用了swap又不想让系统把某进程杀掉。就设置swap的平分机制
设置swap的平分机制 oom评分:cat /proc/pid/oom_score 设置为0,不会触发oomkiller机制,最多会报错
补充:
剩余: