PostgreSQL-แแก แแแขแแแแแฃแ แ แจแแกแ แฃแแแแ แแแแแแแแแแฃแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก แกแฌแแ แแ แแแแกแแแฆแแ แฃแ แแแ แแแแขแ แแแแ. OS-แแก แแแ แแแแก แชแฃแแแ แแแแคแแแฃแ แแ แแแฃแแแ แแแ แแแแขแ แแแแ แจแแแซแแแแ แแแแแแฌแแแแก แแแแแชแแแแ แแแแแก แกแแ แแแ แแก แชแฃแแ แแฃแจแแแแ. แแแแขแแ, แแฃแชแแแแแแแแ, แ แแ แแก แแแ แแแแขแ แแแ แแแแคแแแฃแ แแ แแแฃแแ แแงแแก แแแแแชแแแแ แแแแแก แกแแ แแแ แแกแ แแ แแแกแ แแแขแแแ แแแแก แแแฎแแแแแ. แแ แแแกแขแจแ แแแแแแฎแแแแแ Linux-แแก แแแ แแแแก แ แแแแแแแแ แแแแจแแแแแแแแ แแแ แแแแขแ แก, แ แแแแแแกแแช แจแแฃแซแแแแ แแแแแแแ แแแแฎแแแแแ แแแแแชแแแแ แแแแแก แกแแ แแแ แแก แแฃแจแแแแแแ แแ แแแแ แแแแคแแแฃแ แแชแแแก แจแแกแแฎแแ.
SHMMAX / SHMALL
SHMMAX แแ แแก แแแ แแแแก แแแ แแแแขแ แ, แ แแแแแแช แแแแแแงแแแแแ แแ แแ แกแแแ แแ แแแฎแกแแแ แแแแก แกแแแแแแขแแก แแแฅแกแแแแแฃแ แ แแแแแก แแแกแแแแแแแ, แ แแแแแแช Linux แแ แแชแแกแก แจแแฃแซแแแ แแแแแงแแก. 9.2 แแแ แกแแแแแ PostgreSQL แแงแแแแแแ System V (SysV), แ แแแแแแช แแแแแฎแแแก SHMMAX แแแ แแแแขแ แก. 9.2-แแก แจแแแแแ, PostgreSQL แแแแแแแแ POSIX แกแแแ แแ แแแฎแกแแแ แแแแแ. แแกแ แ แแ, แแฎแแ แกแแญแแ แแ System V-แแก แกแแแแแ แ แแแฎแกแแแ แแแแก แแแแแแแ แแแแขแ.
9.3 แแแ แกแแแแแ SHMMAX แแงแ แแแ แแแแก แงแแแแแแ แแแแจแแแแแแแแแ แแแ แแแแขแ แ. SHMMAX แแแแจแแแแแแแ แแแแแแแแฃแแแ แแแแขแแแจแ.
แแแแแแแแฃแ แแ, SHMALL แแ แแก แแแ แแแแก แแแแแ แแ แแ แแแ แแแแขแ แ, แ แแแแแแช แแแแแแงแแแแแ แแแแกแแแฆแแ แแกแแแแก
แกแแแ แแ แแแฎแกแแแ แแแแก แแแแ แแแแแก แกแแกแขแแแฃแ แ แแแชแฃแแแแ. แแแแแแแแ แ SHMMAX, SHMALL แแ SHMMIN แแแแจแแแแแแแแแแก แกแแแแฎแแแแ แแแแแแงแแแแ แแ แซแแแแแ ipcs.
SHM* แแแขแแแแแ - Linux
$ ipcs -lm
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 1073741824
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1
SHM* แแแขแแแแแ - MacOS X
$ ipcs -M
IPC status from as of Thu Aug 16 22:20:35 PKT 2018
shminfo:
shmmax: 16777216 (max shared memory segment size)
shmmin: 1 (min shared memory segment size)
shmmni: 32 (max number of shared memory identifiers)
shmseg: 8 (max shared memory segments per process)
shmall: 1024 (max amount of shared memory in pages)
PostgreSQL แแงแแแแแก แกแแกแขแแแ V IPC แกแแแ แแ แแแฎแกแแแ แแแแก แแแแแงแแคแ. แแก แแแ แแแแขแ แ แแ แแก แแแ แแแแก แแ แ-แแ แแ แงแแแแแแ แแแแจแแแแแแแแแ แแแ แแแแขแ แ. แ แแแแกแแช แแฆแแแ แจแแแแแ แจแแชแแแแแก แจแแขแงแแแแแแแแแก, แแก แแแจแแแแก, แ แแ แแฅแแแ แแแฅแแ PostgreSQL-แแก แซแแแแ แแแ แกแแ แแ แแฅแแแแ SHMMAX แแแแจแแแแแแแ แซแแแแแ แแแแแแแ. แแแกแแแแแแแแแ, แ แแ แแแแฎแแแ แแแแแแ แจแแชแแแแแ แแ แแแแแ แแแ แแแแจแแแแแแแ แกแแแ แแ แแแฎแกแแแ แแแแก แจแแกแแแแแแกแแ, แ แแแแแแ แแแแแงแแแแแแกแแช แแแแ แแแแ.
แจแแกแแซแแ แแ แแกแฌแแ แ แแแแคแแแฃแ แแชแแแก แจแแชแแแแแแ
แแฃ SHMMAX แแ แแ แแก แกแฌแแ แแ แแแแคแแแฃแ แแ แแแฃแแ, แจแแแซแแแแ แแแแฆแแ แจแแชแแแแ PostgreSQL แแแแกแขแแ แแก แแแแชแแแแแแแชแแแกแแก แแ แซแแแแแแก แแแแแงแแแแแแ initdb.
initdb แแแ แชแฎแ
DETAIL: Failed system call was shmget(key=1, size=2072576, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.
You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 2072576 bytes),
reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter,
in which case raising the request size or reconfiguring SHMMIN is called for.
The PostgreSQL documentation contains more information about shared memory configuration. child process exited with exit code 1
แแแแแแแแฃแ แแ, แแฅแแแ แจแแแซแแแแ แแแแฆแแ แจแแชแแแแ PostgreSQL แกแแ แแแ แแก แแแจแแแแแกแแก แแ แซแแแแแแก แแแแแงแแแแแแ pg_ctl.
pg_ctl แฌแแ แฃแแแขแแแแแแ
DETAIL: Failed system call was shmget(key=5432001, size=14385152, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.
You can either reduce the request size or reconfigure the kernel with larger SHMMAX.; To reduce the request size (currently 14385152 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter,
in which case raising the request size or reconfiguring SHMMIN is called for.
The PostgreSQL documentation contains more information about shared memory configuration.
แแแแแแ แขแแแแแจแ แแแแกแฎแแแแแแแแแก แแแแแแ
SHMMAX/SHMALL แแแ แแแแขแ แแแแก แแแแกแแแฆแแ แ แแแแแ แแแแกแฎแแแแแแฃแแแ Linux-แกแ แแ MacOS X-แแ:
- Linux: kernel.shmmax, kernel.shmall
- MacOS X: kern.sysv.shmmax, kern.sysv.shmall
แแฃแแแ sysctl แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแแแจแแแแแแแแก แแ แแแแแ แจแแกแแชแแแแแแ. แแฃแแแแแ แแแแจแแแแแแแแแแก แแแกแแงแแแแแแแ, แแแแแแขแแ แฉแแแแฌแแ แ /etc/sysctl.conf. แแแขแแแแแ แฅแแแแแ แแแชแแแฃแแแ.
แแแ แแแแก แแแ แแแแขแ แแแแก แจแแชแแแ MacOS X-แแ
# Get the value of SHMMAX
sudo sysctl kern.sysv.shmmax
kern.sysv.shmmax: 4096
# Get the value of SHMALL
sudo sysctl kern.sysv.shmall
kern.sysv.shmall: 4096
# Set the value of SHMMAX
sudo sysctl -w kern.sysv.shmmax=16777216
kern.sysv.shmmax: 4096 -> 16777216
# Set the value of SHMALL
sudo sysctl -w kern.sysv.shmall=16777216
kern.sysv.shmall: 4096 -> 16777216
แแแ แแแแก แแแ แแแแขแ แแแแก แจแแชแแแ Linux-แแ
# Get the value of SHMMAX
sudo sysctl kernel.shmmax
kernel.shmmax: 4096
# Get the value of SHMALL
sudo sysctl kernel.shmall
kernel.shmall: 4096
# Set the value of SHMMAX
sudo sysctl -w kernel.shmmax=16777216
kernel.shmmax: 4096 -> 16777216
# Set the value of SHMALL
sudo sysctl -w kernel.shmall=16777216
kernel.shmall: 4096 -> 16777216
แฒแ แแแแแแแฌแงแแแก: แชแแแแแแแแแแก แแฃแแแแแ แจแแกแแฅแแแแแแ, แแแแแแขแแ แแก แแแแจแแแแแแแแแ /etc/sysctl.conf
แฃแแแ แแแแแ แ แแแแ แแแแ
Linux แแแแฃแแแกแฎแแแแแ แแงแแแแแก 4 KB แแแฎแกแแแ แแแแก แแแแ แแแแก, BSD แแงแแแแแก XNUMX KB แแแฎแกแแแ แแแแก แแแแ แแแแก. แกแฃแแแ แแแแ แแแแแแ Windows-แแ - แแแแ แแแแ แแแแ. แแแแ แแ แแ แแก RAM-แแก แแแฌแแแ, แ แแแแแแช แแแแแงแแคแแแแ แแ แแชแแกแแ. แแ แแชแแกแก แจแแแซแแแแ แฐแฅแแแแแก แ แแแแแแแแ แแแแ แแ, แ แแช แแแแแแแแแแฃแแแ แแแฎแกแแแ แแแแก แแแแฎแแแแแแแแแแแ. แ แแช แฃแคแ แ แแแข แแแฎแกแแแ แแแแก แแแแแฎแแแก แแ แแชแแกแ, แแแ แแแขแ แแแแ แแแ แแแแแงแแคแแแ. OS แแแแฎแแแก แแ แแชแแกแแแแก แแแแ แแแก แแแแแฌแแแแแแก แชแฎแ แแแก. แ แแช แฃแคแ แ แแชแแ แแ แแแแ แแแก แแแแ, แ แแช แฃแคแ แ แแแแแ แชแฎแ แแแ, แแแ แฃแคแ แ แแแขแ แแ แ แกแญแแ แแแแ แแ แแแแ แแแก แชแฎแ แแแจแ แแแแ แแแก แแแแแแก. แแแแขแแ แแแแ แแแแ แแแแ แกแแจแฃแแแแแแก แแซแแแแ แแแแ แ แแแแแแแแแ แแแฎแกแแแ แแแแก แแแแแงแแแแแ แจแแแชแแ แแแฃแแ แแแแแแแแแแ; แแแแแแแ แแแแ แแแก แแแฎแแ, แแแแแแแ แแแแ แแแก แจแแชแแแแแแ, แฃแคแ แ แกแฌแ แแคแ แฌแแแแแฎแแแก/แฉแแฌแแ แแก แแแแ แแชแแแแ แฃแคแ แ แแแ แแฃแคแแ แแแแ. แจแแแแแ แแ แแก แแแฃแแฏแแแแกแแแฃแแ แจแแกแ แฃแแแแ.
PostgreSQL แแฎแแ แก แฃแญแแ แก แแฎแแแแ แแแ แแแแ แแแแก Linux-แแ. แแแแฃแแแกแฎแแแแแ, Linux แแงแแแแแก 4 KB แแแฎแกแแแ แแแแก แแแแ แแแแก, แแแแขแแ แแ แจแแแแฎแแแแแแจแ, แ แแแแกแแช แแแฎแกแแแ แแแแก แซแแแแแ แแแแ แ แแแแ แแชแแแ, แกแแญแแ แแ แฃแคแ แ แแแแ แแแแ แแแแแก แแแงแแแแแ. แแคแแฅแขแฃแ แแแแก แแ แแ แจแแแแแจแแแแ 2 แแ แแ 1 แแ-แแแ แแแแ แแแแ แแแแแก แแแแแงแแแแแแกแแก. แแแแ แแแก แแแแ แแแแแก แแแงแแแแแ แจแแกแแซแแแแแแแ แฉแแขแแแ แแแแก แแ แแก. แแฅแแแ แจแแแแซแแแแ แแแ แขแแแแ แจแแแแแฌแแแ แแแแ แแแแ แแแก แแแ แแแแขแ แแแ แแ แแแแ แแแแแงแแแแแ แแฅแแแแก Linux แแแแ แแขแแ แแ แซแแแแแแก แแแแแงแแแแแแ แแแขแ /proc/meminfo | grep -แ แฃแแแ แแแแแ แ.
แแแแ แแแแ แแแแแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แแแฆแแแ (แแฎแแแแ Linux)
Note: This is only for Linux, for other OS this operation is ignored$ cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
แแ แแแแแแแแจแ, แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแแ แแแแ แแแก แแแแ แแแงแแแแแฃแแแ 2048-แแ (2 แแ), แแแแ แแแแ แแแแแก แกแแแ แแ แ แแแแแแแแ แแแงแแแแแฃแแแ 0-แแ. แแก แแแจแแแแก, แ แแ แแแแ แแแแ แแแแ แแแแแ แแฃแแแ.
แกแแ แแแขแ แแแแ แแแแ แแแแแก แ แแแแแแแแแก แแแกแแแแแแแ
แแก แแแ แขแแแ แกแแ แแแขแ แแแ แฃแแแแก แแแแ แแแแ แแแแแก แกแแญแแ แ แ แแแแแแแแแก. แแแฃแจแแแ แกแแ แแแขแ แแฅแแแแก Linux แกแแ แแแ แแ, แกแแแแ PostgreSQL แแฃแจแแแแก. แแแ แฌแแฃแแแแ, แ แแ แแแ แแแแก แชแแแแแ $PGDATA แแแแแแแแฃแแแ PostgreSQL แแแแแชแแแแ แแแ แแฅแขแแ แแ.
แกแแญแแ แ แแแแ แแแแ แแแแแก แ แแแแแแแแแก แแแฆแแแ
#!/bin/bash
pid=`head -1 $PGDATA/postmaster.pid`
echo "Pid: $pid"
peak=`grep ^VmPeak /proc/$pid/status | awk '{ print $2 }'`
echo "VmPeak: $peak kB"
hps=`grep ^Hugepagesize /proc/meminfo | awk '{ print $2 }'`
echo "Hugepagesize: $hps kB"
hp=$((peak/hps))
echo Set Huge Pages: $hp
แกแแ แแแขแแก แแแแแแแแแแ แแกแ แแแแแแงแฃแ แแแ:
แกแแ แแแขแแก แแแแแแแแแแ
Pid: 12737
VmPeak: 180932 kB
Hugepagesize: 2048 kB
Set Huge Pages: 88
แ แแแแแแแแแแฃแแ แแแแจแแแแแแแ แแแแ แแแแ แแแแแกแแแแก แแ แแก 88, แแกแ แ แแ แแฅแแแ แฃแแแ แแแแงแแแแ แแก 88-แแ.
แแแแ แแแแ แแแแแก แแแกแขแแแแชแแ
sysctl -w vm.nr_hugepages=88
แจแแแแแฌแแแ แแแแ แแแแ แแแแ แแฎแแ, แแแฎแแแ, แ แแ แแแแ แแแแ แแแแ แแ แแแแแแงแแแแแ (HugePages_Free = HugePages_Total).
แแแแ แแแแ แแแแ แฎแแแแฎแแ แแแแฎแแแฃแแแ (แแฎแแแแ Linux)
$ cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 88
HugePages_Free: 88
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
แแฎแแ แแแแงแแแแ แฃแแแ แแแแแ แ_pages แแแ แแแแขแ แ "on"-แแ $PGDATA/postgresql.conf-แจแ แแ แแแแแขแแแ แแแ แกแแ แแแ แ.
แแแแแ แแ แแฎแแ, แแแคแแ แแแชแแ แแแแ แแแแ แแแแแก แจแแกแแฎแแ (แแฎแแแแ Linux)
$ cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 88
HugePages_Free: 81
HugePages_Rsvd: 64
HugePages_Surp: 0
Hugepagesize: 2048 kB
แแฎแแ แแฅแแแ แฎแแแแแ, แ แแ แซแแแแแ แชแแขแ แแแแ แแแแ แแ แแแแแแงแแแแแ. แแฎแแ แแชแแแแ แแแแแชแแแแ แแแแแจแ แแแ แแแแฃแแ แแแแแชแแแแแแก แแแแแขแแแ.
แแแแแชแแแแ แแแแแก แแแแแแ แแ แแแแ แแชแแ แแแแ แแแแ แแแแแก แแแแแแฃแจแแแแแแกแแแแก
postgres=# CREATE TABLE foo(a INTEGER);
CREATE TABLE
postgres=# INSERT INTO foo VALUES(generate_Series(1,10000000));
INSERT 0 10000000
แแแแฎแแ, แแแงแแแแแ แแฃ แแ แ แแฎแแ แฃแคแ แ แแแ แแแแ แแแแก, แแแแ แ แแแ แ.
แแแขแ แแแคแแ แแแชแแ แแแ แแแแ แแแแแ (แแฎแแแแ Linux)
$ cat /proc/meminfo | grep -i huge
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
HugePages_Total: 88
HugePages_Free: 18
HugePages_Rsvd: 1
HugePages_Surp: 0
Hugepagesize: 2048 kB
แแฎแแ แแฅแแแ แฎแแแแแ, แ แแ แแแแ แแแแ แแแแแก แฃแแแขแแกแแแ แแแแแแงแแแแแ.
แจแแแแจแแแ: แแฅ แแแแแงแแแแแฃแแ HugePages-แแก แกแแแแ แแฃแแ แแแแจแแแแแแแ แซแแแแแ แแแแแแแ, แ แแช แแ แแ แแก แแแ แแแแฃแ แ แแแแจแแแแแแแ แแ แแแแ แแขแแกแแแแก, แ แแแแแแช แแฃแจแแแแก แแ แแแฃแฅแขแแก แแแ แแแแจแ. แแแฎแแแ แจแแแคแแกแแ แแฅแแแแ แกแแกแขแแแแกแแแแก แกแแญแแ แ แแแแ แแแแแก แ แแแแแแแแ แแ แแแแงแแแแ แแกแแแ แแแขแแแ แแแแกแ แแ แ แแกแฃแ แกแแแแก แจแแกแแแแแแกแแ.
vm.swappiness
vm.swappiness แแ แแก แแแ แแแแก แแแแแ แแ แแ แแแ แแแแขแ แ, แ แแแแแกแแช แจแแฃแซแแแ แแแแแแแ แแแแฎแแแแแก แแแแแชแแแแ แแแแแก แแฃแจแแแแแแ. แแก แแแ แแแแขแ แ แแแแแแงแแแแแ Linux-แแ แชแแแแแ แฅแชแแแแก แแแกแแแแแขแ แแแแแแแ (แแแแ แแแแแก แฉแแแแชแแแแแ แแแฎแกแแแ แแแแแแ แแ แแแ แแ). แแแแจแแแแแแแ แแแ แงแแแแก 0-แแแ 100-แแแ. แแก แแแแกแแแฆแแ แแแก, แแฃ แ แแแแแแ แแแฎแกแแแ แแแแก แแฅแแแแ แแแแ แแ แแ แแแแ แแ. แแฃแแ แแแจแแแแก แแ แแแชแแแแก แแ 100 แแแจแแแแก แแแ แแกแแฃแ แแแชแแแแก.
แแฅแแแ แจแแแแซแแแแ แแแแฆแแ แแแ แแ แจแแกแ แฃแแแแ แฅแแแแ แแแแจแแแแแแแแแแก แแแงแแแแแแ.
แแฎแแ แแแ แแแแแแ แแแแก 0-แแ แแแงแแแแแแ แจแแแซแแแแ แแแแแแฌแแแแก OOM Killer (Linux-แแก แแแฎแกแแแ แแแแก แแแฌแแแแแแก แแ แแชแแกแ) แแ แแชแแกแแก แแแแแแ. แแกแ แ แแ, แฃแกแแคแ แแฎแแ แแแแงแแแแ แแก 1-แแ, แแฃ แแกแฃแ แ แแแแแแฃแแแแแ แแแแงแแแแแ แจแแชแแแ. แแแแฃแฅแกแแก แแแแฃแแแกแฎแแแแ แแแแจแแแแแแแ แแ แแก 60. แฃแคแ แ แแแฆแแแ แแแแจแแแแแแแ แแแซแฃแแแแก MMU-แก (แแแฎแกแแแ แแแแก แแแ แแแแก แแ แแแฃแแ) แแแแแแงแแแแก แแแขแ swap แกแแแ แชแ แแแแ แ RAM, แฎแแแ แแแแแแ แแแแจแแแแแแแ แแแแฎแแแก แแแข แแแแแชแแแก/แแแแก แแแฎแกแแแ แแแแจแ.
แฃแคแ แ แแแแแแ แฆแแ แแแฃแแแแ แแ แแก แแแ แแ แคแกแแแ PostgreSQL-แจแ แแแฃแแฏแแแแกแแแฃแแ แแฃแจแแแแแกแแแแก.
vm.overcommit_memory / vm.overcommit_ratio
แแแแแแแชแแแแ แแซแแแแ แแแฎแกแแแ แแแแก แแ แแแแแแกแฃแคแแแแแ แแแก, แ แแชแ แแฆแแ แแ แแก แกแแญแแ แ. แแแแ แแ แแแแแแ แ แจแแแแฎแแแแแจแ, แแแแแแแชแแ แแฆแแแก แซแแแแแ แแแ แแแฎแกแแแ แแแแก แแ แแ แแแแแแกแฃแคแแแแก แแแก. แแแแ แจแแแซแแแแ แแแแแแฌแแแแก OOM แแแแแแแ. แแฅ แแแชแแแฃแแแ แแแ แแแแขแ แแแแก แจแแกแแซแแ แแแแจแแแแแแแแแ vm.overcommit_memory แแแแแแฃแแแก แแฆแฌแแ แแ:
- แแแ แแกแขแแแฃแแ แแแแแแแขแแแ (แแแแฃแแแกแฎแแแแ); แแแ แแแแ แแแคแฃแซแแแแฃแแ แแแ แแกแขแแแ
- แแแแแช แแแฃแจแแแ แแแแแแแขแแแ
- แแฃ แแแแแแญแแ แแแแ, แแฃ แแแแแแญแแ แแแแ แแแแแแขแแแแก แแแแคแแชแแแแขแก.
แแแฃแแ:
vm.overcommit_ratio - RAM-แแก แแ แแชแแแขแ แฎแแแแแกแแฌแแแแแแ แแแแแขแแแ แแแแกแแแแก. 50 GB แแแแ แแขแแฃแแ แแแฎแกแแแ แแแแก แแฅแแแ แกแแกแขแแแแแ 2%-แแแแ แฆแแ แแแฃแแแแ แจแแแซแแแแ แแแแแงแแก 3 แแ-แแแ แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ.
2-แแก แแแแจแแแแแแแ vm.overcommit_memory-แกแแแแก แฃแแ แฃแแแแแงแแคแก แฃแแแแแก แจแแกแ แฃแแแแแก PostgreSQL-แแกแแแแก. แแก แแแแจแแแแแแแ แแซแแแแ แแแก แกแแ แแแ แแก แแ แแชแแกแแก แแแแ แแขแแฃแแ แแแฎแกแแแ แแแแก แแแฎแแแ แแแแก OOM แแแแแแแแก แแ แแชแแกแแก แแแแ แแแแแแแก แแแแจแแแแแแแแแ แ แแกแแแก แแแ แแจแ. แแแแแแแชแแแก แจแแแซแแแแ แแแแแขแแแ แแแ, แแแแ แแ แแฎแแแแ แแแแแญแแ แแแแแก แคแแ แแแแแจแ, แ แแช แแแชแแ แแแก OOM แแแแแแแแก แแ แแชแแกแแก แแแแแแแก แ แแกแแก. แแแแขแแ, 2-แแก แแแแจแแแแแแแ แแซแแแแ แฃแแแแแก แจแแกแ แฃแแแแแก, แแแแ แ แแแแฃแแแกแฎแแแแ แแแแจแแแแแแแ 0. แแฃแแชแ, แกแแแแแแแแแ แจแแแซแแแแ แแแฃแแฏแแแแกแแแก แแแแ, แ แแ แกแแแฆแแ แแแก แแแ แแ แแแฎแกแแแ แแแแก แแแแแขแแแ แแแ แแ แแฅแแแแ. แแก แแแแแ แแชแฎแแแก OOM แแแแแแแแก แแแแ แแ แแชแแกแแก แแแแแแแก แ แแกแแก.
แกแแกแขแแแแแแ แจแแชแแแแก แแแ แแจแ, แจแแแซแแแแ แฌแแ แแแแจแแแก แแ แแแแแแ vm.overcommit_memory-แแก แขแแแ 2-แแก.
vm.dirty_background_ratio / vm.dirty_background_bytes
vm.dirty_background_ratio แแ แแก แแแแซแฃแ แ แแแแ แแแแแ แกแแแกแ แแแฎแกแแแ แแแแก แแ แแชแแแขแ, แ แแแแแแช แฃแแแ แฉแแแฌแแ แแก แแแกแแแ. แแแกแแแ แฉแแกแแ แฎแแแแ แคแแแแ. แแ แแแ แแแแขแ แแก แแแแจแแแแแแแ แแแ แงแแแแก 0-แแแ 100-แแแ; แแฃแแชแ, 5-แแ แแแแแแ แแแแจแแแแแแแ แจแแแซแแแแ แแงแแก แแ แแแคแแฅแขแฃแ แ แแ แแแแแแ แแ แแแ แแแ แแแก แแ แฃแญแแ แก แแฎแแ แก. 10 แแ แแก แแแแฃแแแกแฎแแแแ Linux แกแแกแขแแแแแแก แฃแแแขแแกแแแแจแ. แแฅแแแ แจแแแแซแแแแ แแแแฃแแฏแแแแกแแ แจแแกแ แฃแแแแ แฉแแฌแแ แแก แแแขแแแกแแฃแ แ แแแแ แแชแแแแแกแแแแก แฃแคแ แ แแชแแ แ แคแแฅแขแแ แแ, แ แแช แแแจแแแแก, แ แแ Linux แแกแฃแคแแแแแแก แแแแซแฃแ แแแแ แแแแก แคแแแแ.
แแฅแแแ แฃแแแ แแแแงแแแแ แแแแจแแแแแแแ vm.dirty_background_bytes แแฅแแแแ แแแกแแแก แกแแฉแฅแแ แแก แแแฎแแแแแ.
แแ แแ แกแแแแแก "แแแ แแ" แแแแจแแแแแแแแแ แแ แแ แ แแแ แแแแขแ แแกแแแแก, แ แแแแแ แแ แแแ แแแแแแแแแแฃแแแ แแแแ แแขแฃแ แแแ. แแฃแแชแ, vm.dirty_background_ratio 5-แแ แแ vm.dirty_background_bytes-แแ แแแกแแแก แกแแฉแฅแแ แแก 25%-แแ แแแงแแแแแ แฃแแแขแแก แจแแแแฎแแแแแจแ แแฃแแฏแแแแกแแแก แแฃแจแแแแแก ~25%-แแแ.
vm.dirty_ratio/dirty_bytes
แแแแแแ แ แแช vm.dirty_background_ratio/dirty_background_bytes, แแแ แแ แแแแกแ, แ แแ แแแแแขแแแ แแแ แฎแแ แชแแแแแแแ แกแแแฃแจแแ แกแแกแแแแ, แแแแแแแชแแแก แแแแแแแแแ. แแแแขแแ vm.dirty_ratio แฃแแแ แแงแแก แฃแคแ แ แแแฆแแแ แแแแ แ vm.dirty_background_ratio. แแก แฃแแ แฃแแแแแงแแคแก แคแแแฃแ แ แแ แแชแแกแแแแก แแแฌแงแแแแก แฃแคแ แ แแแ แ, แ แแแ แแแแแแแ แแแชแแแแ แแแแแแแชแแแก แแแแแแแแ แแแฅแกแแแแแฃแ แแ. แแฅแแแ แจแแแแซแแแแ แแแแ แแแฃแแแ แแ แแแแกแฎแแแแแแ แแ แแ แแแแแคแแ แแแแแก แจแแ แแก แแแกแแแก I/O แแแขแแแ แแแแก แแแฎแแแแแ.
แกแฃแ
แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แกแฎแแ แแแ แแแแขแ แแแ แจแแกแ แฃแแแแแก แแแกแแฃแแฏแแแแกแแแแแ, แแแแ แแ แแแฃแแฏแแแแกแแแแแ แแแแแแแแฃแ แ แแฅแแแแ แแ แแแ แกแแ แแแแแแก แแแ แแแฎแแแ. แฃแแแ แแแแฎแกแแแแแก, แ แแ แงแแแแ แแแ แแแแขแ แแ แแ แชแแแแแแ แงแแแแ แขแแแแก แแแแแแแชแแแแ. แแแแแแ แแ แแแ แฃแแแ แแฃแจแแแแก, แ แแชแ แแแแแแ แ แแแ แแแแขแ แก แแแ แแแฃแแแ แแแ, แแแแ แแ แแ แ. แแฅแแแ แฃแแแ แแแแแแ แกแฌแแ แ แแแแแแกแ แแ แแแ แแแแขแ แแแแก แแแแคแแแฃแ แแชแแแก แแฅแแแแ แแแกแแแแแแแแ แแแขแแแ แแแแกแ แแ แแแแแแแชแแแก แขแแแแกแแแแก แจแแ แแก แแ แแกแแแ แฃแแแ แแแแแแแแแกแฌแแแแ OS-แแก แฅแชแแแ แแแงแแแแแแกแแก. แแแ แแแแก แแแ แแแแขแ แแแแก แแแแคแแแฃแ แแชแแ แแ แช แแกแ แแแแแแแ, แ แแแแ แช แแแแแชแแแแ แแแแแก แแแ แแแแขแ แแแแก แแแแคแแแฃแ แแชแแ; แฃแคแ แ แ แแฃแแแ แ แแแแแแแแแชแแแแแก แแแแแแแแ.
แฌแงแแ แ: www.habr.com