我已经使用PostgreSQL的文档来设置它,例如这个配置:
>>> cat /proc/meminfo
MemTotal: 16345480 kB
MemFree: 1770128 kB
Buffers: 382184 kB
Cached: 10432632 kB
SwapCached: 0 kB
Active: 9228324 kB
Inactive: 4621264 kB
Active(anon): 7019996 kB
Inactive(anon): 548528 kB
Active(file): 2208328 kB
Inactive(file): 4072736 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 3432 kB
Writeback: 0 kB
AnonPages: 3034588 kB
Mapped: 4243720 kB
Shmem: 4533752 kB
Slab: 481728 kB
SReclaimable: 440712 kB
SUnreclaim: 41016 kB
KernelStack: 1776 kB …
Run Code Online (Sandbox Code Playgroud) 我已经阅读了网上关于提高 postgres 性能的所有内容,但是 SHMMAX 和 SHMALL 的“正确”值仍然让我难以理解。
共识似乎是 SHMMAX = total_memory/4 和 SHMALL = total_memory/2 是安全的起始值。
但是,SHMALL 可以以页数或字节数来衡量,我找不到任何有关在 Ubuntu 上使用的信息。
Ubuntu(或更普遍的 Debian)是否为 SHMALL 使用页面或字节?
我应该如何以持久的方式在 Mac Os X 10.5.6 Leopard 中设置 shm* 值?
我对于 shmmax 中的最大值应该设置多少有一个模糊性。
查看我的系统统计数据后,它显示以下内容:
#cat /proc/sys/kernel/shmmax
18446744073692774399
#ipcs -l
------ Messages Limits --------
max queues system wide = 3675
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250 …
Run Code Online (Sandbox Code Playgroud) shmmax ×4
postgresql ×2
sysctl ×2
debian ×1
kernel ×1
linux ×1
mac ×1
performance ×1
proc ×1
ubuntu ×1