āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ PostgreSQL āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻžāĻ°āĻžāĻĒāĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž OS āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻĢāĻ˛ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻžāĻ°āĻžāĻĒ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻāĻ° āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻāĻ āĻĒā§āĻ¸ā§āĻā§, āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤
SHMMAX / SHMALL
SHMMAX āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻāĻļā§āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ Linux āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 9.2 āĻāĻ° āĻāĻā§, PostgreSQL āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ V (SysV) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ SHMMAX āĻ¸ā§āĻāĻŋāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ 9.2 āĻāĻ° āĻĒāĻ°ā§, PostgreSQL POSIX āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻā§āĨ¤ āĻ¤āĻžāĻ āĻāĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ V āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻŽ āĻŦāĻžāĻāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 9.3 āĻāĻ° āĻāĻā§, SHMMAX āĻāĻŋāĻ˛ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĨ¤ SHMMAX āĻŽāĻžāĻ¨ āĻŦāĻžāĻāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻāĻā§āĨ¤
āĻāĻāĻāĻāĻžāĻŦā§, SHMALL āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°
āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻāĻ¯āĻŧāĻžāĻāĻĄ āĻāĻ˛āĻŋāĻāĻŽāĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ SHMMAX, SHMALL, āĻŦāĻž SHMMIN āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻāĻĒāĻŋāĻ¸āĻŋ.
SHM* āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ - āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸
$ 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 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŋ āĻāĻāĻĒāĻŋāĻ¸āĻŋ āĻāĻžāĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻāĻŋ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋāĨ¤ āĻ¯āĻāĻ¨āĻ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ¨, āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ 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-āĻ āĻāĻŋāĻā§āĻāĻž āĻāĻ˛āĻžāĻĻāĻž:
- āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸: 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
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
# 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 āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻŦāĻŋāĻļāĻžāĻ˛ āĻĒāĻžāĻ¤āĻž
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻāĻžāĻŦā§ 4 KB āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, BSD XNUMX KB āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻĒāĻžāĻ° āĻĒā§āĻ, āĻāĻŦāĻ āĻāĻāĻ¨ā§āĻĄā§āĻā§ - āĻŦāĻĄāĻŧ āĻĒāĻžāĻ¤āĻž. āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž RAM āĻāĻ° āĻāĻāĻāĻŋ āĻ āĻāĻļāĨ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻˇā§āĻ āĻž āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¯āĻ¤ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻ¤ āĻŦā§āĻļāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ OS āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻā§āĻŦāĻŋāĻ˛ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻā§āĨ¤ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻāĻžāĻ° āĻ¯āĻ¤ āĻā§āĻ āĻšāĻŦā§, āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻ¤āĻ¤ āĻŦāĻĄāĻŧ āĻšāĻŦā§, āĻ¸ā§āĻ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻ¤āĻ¤ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻāĻŦā§āĨ¤ āĻ¤āĻžāĻ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻāĻŽ āĻāĻāĻžāĻ°āĻšā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ; āĻāĻŽ āĻĒā§āĻ āĻāĻŋāĻ, āĻāĻŽ āĻĒā§āĻ āĻĢāĻ˛ā§āĻ, āĻŦāĻĄāĻŧ āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ°āĻŋāĻĄ/āĻ°āĻžāĻāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž.
PostgreSQL āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ 4 KB āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¤āĻžāĻ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻā§ āĻāĻŽāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ 2 āĻāĻŽāĻŦāĻŋ āĻāĻŦāĻ 1 āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻ°āĻŋāĻ˛āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻāĻžāĻ° āĻŦā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§. āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻšāĻā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ cat /proc/meminfo | grep - āĻāĻŽāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛.
āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻāĻ¯āĻŧāĻž (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸)
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 MB) āĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻŦā§āĻšā§ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ° āĻŽā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž 0 āĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
āĻāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻā§āĻ¯āĻ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ 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)āĨ¤
āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸)
$ 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
āĻāĻāĻ¨ $PGDATA/postgresql.conf-āĻ āĻŦāĻŋāĻļāĻžāĻ˛_āĻĒā§āĻˇā§āĻ āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋāĻā§ "āĻāĻžāĻ˛ā§" āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻŦāĻžāĻ°, āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸)
$ 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
āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻ¨ āĻāĻ°āĻ āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ āĻāĻŋāĻ¨āĻžāĨ¤
āĻŦāĻĄāĻŧ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸)
$ 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 āĻāĻ°ā§āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ (āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻŦāĻ āĻŦāĻžāĻāĻ°ā§ āĻĒā§āĻˇā§āĻ āĻž āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛) āĻāĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻŽāĻžāĻ¨ 0 āĻĨā§āĻā§ 100 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ āĻāĻ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ āĻŦāĻž āĻĒā§āĻ āĻāĻāĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻļā§āĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ā§ āĻā§āĻ¨ āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ 100 āĻŽāĻžāĻ¨ā§ āĻāĻā§āĻ°āĻŽāĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻžāĻ˛ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨.
āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻāĻāĻŋāĻā§ 0 āĻ āĻ¸ā§āĻ āĻāĻ°āĻ˛ā§ OOM āĻāĻŋāĻ˛āĻžāĻ° (āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž) āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¤āĻžāĻ āĻāĻāĻŋ 1 āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨āĨ¤ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻšāĻ˛ 60āĨ¤ āĻāĻāĻāĻŋ āĻāĻā§āĻ āĻŽāĻžāĻ¨ MMU (āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻāĻāĻ¨āĻŋāĻ) RAM āĻāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¸ā§āĻ¯āĻŧāĻžāĻĒ āĻ¸ā§āĻĒā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻŽ āĻŽāĻžāĻ¨ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻāĻ°āĻ āĻĄā§āĻāĻž/āĻā§āĻĄ āĻ°āĻžāĻā§āĨ¤
PostgreSQL-āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨ āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ā§ āĻŦāĻžāĻāĻŋāĨ¤
vm.overcommit_memory / vm.overcommit_ratio
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¯āĻāĻ¨ āĻāĻāĻŋāĻ° āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻā§āĻĄāĻŧā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ OOM āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŽāĻžāĻ¨ āĻāĻā§ vm.overcommit_memory āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻš:
- āĻšāĻŋāĻāĻ°āĻŋāĻ¸ā§āĻāĻŋāĻ āĻāĻāĻžāĻ°āĻāĻŽāĻŋāĻ (āĻĄāĻŋāĻĢāĻ˛ā§āĻ); āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻšāĻŋāĻāĻ°āĻŋāĻ¸ā§āĻāĻŋāĻ
- āĻ¯āĻžāĻāĻšā§āĻ overcommit āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨
- āĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻāĻžāĻ°āĻāĻŽāĻŋāĻ āĻ āĻ¨ā§āĻĒāĻžāĻ¤ āĻ āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
āĻ˛āĻŋāĻā§āĻ:
vm.overcommit_ratio â āĻāĻāĻžāĻ°āĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ RAM āĻāĻ° āĻļāĻ¤āĻžāĻāĻļāĨ¤ 50 GB RAM āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ 2% āĻāĻ° āĻŽāĻžāĻ¨ 3 GB āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ RAM āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
vm.overcommit_memory-āĻāĻ° āĻāĻ¨ā§āĻ¯ 2-āĻāĻ° āĻŽāĻžāĻ¨ PostgreSQL-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻāĻžāĻ˛ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻŽāĻžāĻ¨āĻāĻŋ OOM āĻāĻŋāĻ˛āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻšāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¨ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻā§āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° RAM āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻžāĻ°āĻ°āĻžāĻ¨ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻ¯āĻž āĻāĻāĻāĻŋ OOM āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻšāĻ¤ā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻā§āĻāĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ, 2-āĻāĻ° āĻŽāĻžāĻ¨ 0-āĻāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ā§āĻ° āĻĨā§āĻā§ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ°ā§āĻā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ OOM āĻšāĻ¤ā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽāĻžāĻ°āĻž āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻāĻāĻŋ āĻĻā§āĻ° āĻāĻ°ā§āĨ¤
āĻ āĻĻāĻ˛āĻŦāĻĻāĻ˛ āĻāĻžāĻĄāĻŧāĻž āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§, 2 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ vm.overcommit_memory āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
vm.dirty_background_ratio / vm.dirty_background_bytes
vm.dirty_background_ratio āĻ¨ā§āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻļāĻ¤āĻžāĻāĻļ āĻ¯āĻž āĻĄāĻŋāĻ¸ā§āĻā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĄāĻŋāĻ¸ā§āĻ āĻĨā§āĻā§ āĻĢā§āĻ˛āĻžāĻļ āĻŦā§āĻ¯āĻžāĻāĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄā§ āĻāĻā§āĨ¤ āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ 0 āĻĨā§āĻā§ 100 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤; āĻ¯āĻžāĻāĻšā§āĻ, 5 āĻāĻ° āĻ¨āĻŋāĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻāĻŋāĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ 10 āĻĄāĻŋāĻĢāĻ˛ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻŋāĻāĻŋāĻ¤-āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻžāĻ° āĻ āĻ°ā§āĻĨ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻ¨ā§āĻāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ āĻĢā§āĻ˛āĻžāĻļ āĻāĻ°āĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ 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