了解顶部和调整

我已经允许我们的服务器上的Postgres 30GB的RAM。 运行密集型任务时,我认为这是交换。

据我所知:

  • VIRT – 虚拟内存(即:交换到磁盘)
  • RES – 完整的内存使用情况
  • SHR – 共享内存 – 我不清楚这是什么

见附件

更新顶级输出

我想这是说:

  • 完整的内存使用Postgres〜60GB,其中30GB交换
  • 由Ruby〜40GB完成内存使用

如果是这样的话,给Postgres另外30或40GB内存似乎是个好主意?

参考

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

VIRT colums并不真正显示总分配的内存。 而是只显示进程用户空间中映射了多less内存。 换句话说,它与交换无关

作为一个双重检查,看看top所示的swap行:它清楚地表明,使用的交换是在0 KB