Ubuntu

Postgresql 性能 - 調整 SHMMAX 和 SHMALL

  • June 15, 2016

我已經閱讀了網上關於提高 postgres 性能的所有內容,但是 SHMMAX 和 SHMALL 的“正確”值仍然讓我難以理解。

共識似乎是 SHMMAX = total_memory/4 和 SHMALL = total_memory/2 是安全的起始值。

但是,SHMALL 可以以頁或字節為單位進行衡量,我找不到任何關於在 Ubuntu 上使用的資訊。

Ubuntu(或更一般的 Debian)是否為 SHMALL 使用頁面或字節?

對於我使用SHMALL的所有 Linux 系統,以頁SHMMAX為單位,以字節為單位。我認為您可以使用ipcs命令檢查您的系統,該命令總是在輸出時將上述參數轉換為千字節,並將其與sysctl值進行比較:

[aseryozhin@centos ~]$ ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096               // SHMMNI   
max seg size (kbytes) = 524288              // SHMMAX
max total shared memory (kbytes) = 8388608  // SHMALL
min seg size (bytes) = 1

[aseryozhin@centos ~]$ sysctl -e kernel.shmmax
kernel.shmmax = 536870912

[aseryozhin@centos ~]$ sysctl -e kernel.shmall
kernel.shmall = 2097152

[aseryozhin@centos ~]$ getconf PAGE_SIZE
4096

SHMMAX:524288 * 1024 = 536870912

SHMALL:8388608 * 1024 / 4096 = 2097152

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