
我在一台具有 4GB RAM 的伺服器上運行 Web 和 DB。當我使用 free -m 檢查記憶體時,我可以看到大部分記憶體都在快取中。
free -m
total used free shared buff/cache available
Mem: 3534 1507 973 25 1052 1676
Swap: 8191 0 8191
有什麼方法可以找出哪些進程是從快取提供服務的,或者哪些進程正在獲取緩存,因為每次我都必須使用同步命令來清除可用記憶體。
答案1
一般來說你應該不是去做。空閒內存是未使用的內存,浪費資源。核心知道它在做什麼:只要記憶體沒有更好的用途,它就會將其用於 I/O 緩衝區或磁碟快取。當進程運行需要更多記憶體時,核心將自動分配它。
除非你可以措施交換空間和記憶體的使用之間不平衡,因此您不應幹擾記憶體分配參數。