查找進程在快取或緩衝區中

查找進程在快取或緩衝區中

我在一台具有 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 緩衝區或磁碟快取。當進程運行需要更多記憶體時,核心將自動分配它。

除非你可以措施交換空間和記憶體的使用之間不平衡,因此您不應幹擾記憶體分配參數。

相關內容