Postgresql

PostgreSQL。Shared_memory 和會話

  • February 14, 2019

我有一個執行 Jira 和 PostgreSQL 9.6 的獨立伺服器。我注意到 PostgreSQL 的 shared_buffers 參數等於 128MB,其中 RAM 為 32GB。因為伺服器與應用程序 Jira 共享,所以還有 16GB 用於其他用途(包括 postgres、httpd)。根據 PostgreSQL 文件,shared_buffers 的大小應該是 RAM 的 25%。它可能是 16GB * 0,25 = 6,5GB。不幸的是,我有疑問,因為應用程序 jira 正在使用 20 個與 PostgreSQL 伺服器的連接會話。所以我擔心當我增加 shared_buffers 時,它會將整個記憶體的使用量乘以 20。

是不是真的:

大約 postgres 消耗的所有記憶體 = shared_buffers*sessions

你會建議用 shared_buffers 參數做什麼?

在此處輸入圖像描述

是的,shared_buffer不是按會話或按使用者分配的。它在所有會話之間共享,並且只分配一次。當參數不共享時,會明確說明,即在頁面https://www.postgresql.org/docs/9.6/runtime-config-resource.html上,您可能會在參數temp_buffers說明中看到,說明它們是“每個數據庫會話使用的臨時緩衝區”。

引用自:https://dba.stackexchange.com/questions/229737