【问题标题】:postgresql 9.6 using all my rampostgresql 9.6 使用我所有的内存
【发布时间】:2017-08-21 14:53:52
【问题描述】:

我的服务器中有 16G 内存。我分配了下一个内存参数:

effective_cache_size = 10GB
work_mem = 128MB
maintenance_work_mem = 4GB
shared_buffers = 4000MB

我的服务器只专用于 postgresql。当我运行一个执行大选择的过程时,我看到 postgresql 使用了服务器上的所有内存,这就是我的状态:

[/PostgreSQL/] : free -m
                         total        used        free      shared  buff/cache   available
           Mem:          15883         291         158        4109       15433       11112
           Swap:          3815         106        3709

正常吗?这可能会影响我使用连接运行的复杂选择?

【问题讨论】:

  • 我猜它在 RAM 中保留尽可能多的数据以用于缓存目的。
  • 它在哪里使用“全部”内存? available = 11112 表示您的 16GB 中仍有 11GB 可用。
  • 您将内核 fs 缓存使用与“使用”混淆了。内核从文件系统中获取所有空闲内存并缓存它可以缓存的所有内容,但第二次请求更多内存时,内核会转储一些缓存并将该内存移交给请求进程。这是完全正常的。

标签: postgresql performance


【解决方案1】:

你读错了。

buff/cache 的值表示内存是用来缓存的,但如果需要,它对应用程序是免费的。

详细解释请看这里:http://www.linuxatemyram.com/

【讨论】:

  • 对。空闲内存是浪费内存。您希望系统始终使用尽可能多的 RAM。
猜你喜欢
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多