極客時間-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工具

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