极客时间-linux性能优化 22.Linux 性能优化答疑(三)

问题一

OOM和内存回收

内存紧张时,会采用三种方式来回收内存

1.LRU算法来回收缓存

2.swap机制来回收不常访问的内存页

3.OOM机制 (oom_score给进程打分)

活跃和非活跃的内存页,按照类型的不同,又分为文件页和匿名页。

 

问题二

文件系统和磁盘的区别

磁盘是块设备,可以被划分成不同的分区。而在磁盘或磁盘分区上,还可以创建文件系统,并且挂载到系统的某个目录。这样,系统就可以通过这个挂载目录,来读写文件。

 

在读写普通文件时,IO请求会首先经过文件系统,然后由文件系统负责,来和磁盘进行交互。

而在读写块设备文件时,会跳过文件系统,直接和磁盘交互,也就是所谓的“裸IO”。

 

问题3:

如何统计所有进程的物理内存使用量

有同学采用把所有进程的RSS都相加得出结果,实际上导致不少地方被重复计算。RSS表示常驻内存,把进程用到的共享内存也算了进去。

每个进程的PSS,是指把共享内存平分到各个进程后,再加上进程本身的非共享内存大小的和;这样直接累加PSS,就不用担心共享内存重复计算的问题了。

grep Pss /proc/[1-9]*/smaps | awk '{total+=$2};END {printf "%d kB\n",total}'

 

问题4

在centos 7上安装bcc-tools

 

问题5

内存泄漏的优化方法

valgrind

tcmalloc

bcc-tools中memleak工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章