Unix

了解頂部和調音

  • February 22, 2016

我在我們的伺服器上允許 Postgres 30GB 的 RAM。在執行密集任務時,我認為它正在交換。

據我了解:

  • VIRT - 虛擬記憶體(即:交換到磁碟)
  • RES - 完整的記憶體使用情況
  • SHR - 共享記憶體 - 我不清楚這是什麼

見附件

更新的頂部輸出

我認為這是在說:

  • Postgres 的完整記憶體使用量約為 60GB,其中 30GB 被交換
  • Ruby 的完整記憶體使用量 ~40GB

如果是這種情況,給 Postgres 再提供 30 或 40GB RAM 似乎是個好主意嗎?

參考

http://mugurel.sumanariu.ro/linux/the-difference-among-virt-res-and-shr-in-top-output/

VIRT 列並沒有真正顯示分配的總記憶體。相反,它只顯示在程序使用者空間中映射了多少記憶體。換句話說,它與交換無關。

作為仔細檢查,請查看swap如下所示的行top:它清楚地表明使用的交換為0 KB

引用自:https://serverfault.com/questions/758970