เชถเซเชฐเซเชทเซเช PostgreSQL เชเชพเชฎเชเซเชฐเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎ เชชเชฐเชฟเชฎเชพเชฃเซ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ. เชเชฐเชพเชฌ เชฐเซเชคเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค OS เชเชฐเซเชจเชฒ เชธเซเชเชฟเชเชเซเชธ เชเชฐเชพเชฌ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช เชชเชฐเชฟเชฃเชฎเซ เชถเชเซ เชเซ. เชคเซเชฅเซ, เชคเซ เชเชตเชถเซเชฏเช เชเซ เชเซ เช เชธเซเชเชฟเชเชเซเชธ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เช เชจเซ เชคเซเชจเชพ เชตเชฐเซเชเชฒเซเชก เช เชจเซเชธเชพเชฐ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซ. เช เชชเซเชธเซเชเชฎเชพเช, เช เชฎเซ เชเซเชเชฒเชพเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ Linux เชเชฐเซเชจเชฒ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชเชฐเซเชเชพ เชเชฐเซเชถเซเช เชเซ เชเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ เช เชธเชฐ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชตเชตเซเช.
SHMMAX / SHMALL
SHMMAX เชเชฐเซเชจเชฒ เชชเซเชฐเชพเชฎเซเชเชฐ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชธเชฟเชเชเชฒ เชถเซเชฐเซเชก เชฎเซเชฎเชฐเซ เชธเซเชเชฎเซเชจเซเชเชจเซเช เชฎเชนเชคเซเชคเชฎ เชฎเชพเชช เชจเชเซเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ เชเซ เชเซ Linux เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชซเชพเชณเชตเซ เชถเชเซ เชเซ. เชธเชเชธเซเชเชฐเชฃ 9.2 เชชเชนเซเชฒเชพ, PostgreSQL เช เชธเชฟเชธเซเชเชฎ V (SysV) เชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเชคเซ, เชเซเชจเซ SHMMAX เชธเซเชเชฟเชเชเชจเซ เชเชฐเซเชฐ เชเซ. 9.2 เชชเชเซ, PostgreSQL เช POSIX เชถเซเชฐเซเชก เชฎเซเชฎเชฐเซ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซเชฏเซเช. เชคเซเชฅเซ เชนเชตเซ เชธเชฟเชธเซเชเชฎ V เชถเซเชฐ เชเชฐเซเชฒเซ เชฎเซเชฎเชฐเซเชจเชพ เชเชเชพ เชฌเชพเชเชเซเชธ เชเชฐเซเชฐเซ เชเซ.
เชเชตเซเชคเซเชคเชฟ 9.3 เชชเชนเซเชฒเชพ, SHMMAX เช เชธเซเชฅเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเชฐเซเชจเชฒ เชชเชฐเชฟเชฎเชพเชฃ เชนเชคเซเช. SHMMAX เชฎเซเชฒเซเชฏ เชฌเชพเชเชเซเชธเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเซ.
เชคเซเชตเซ เช เชฐเซเชคเซ SHMALL เชจเชเซเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชคเซเช เชฌเซเชเซเช เชเชฐเซเชจเชฒ เชชเชฐเชฟเชฎเชพเชฃ เชเซ
เชตเชนเซเชเชเชพเชฏเซเชฒ เชฎเซเชฎเชฐเซ เชชเซเชทเซเช เซเชจเซเช เชธเชฟเชธเซเชเชฎ-เชตเซเชฏเชพเชชเซ เชตเซเชฒเซเชฏเซเชฎ. เชตเชฐเซเชคเชฎเชพเชจ SHMMAX, SHMALL, เช
เชฅเชตเชพ SHMMIN เชฎเซเชฒเซเชฏเซ เชเซเชตเชพ เชฎเชพเชเซ, เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเชเชชเซเชธเซ.
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 เชเชชเชฏเซเช เชเชฐเซ เชเซ เชธเชฟเชธเซเชเชฎ เชตเซ เชเชเชชเซเชธเซ เชตเชนเซเชเชเชพเชฏเซเชฒ เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเชตเชพ เชฎเชพเชเซ. เช เชชเชฐเชฟเชฎเชพเชฃ เชธเซเชฅเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเชฐเซเชจเชฒ เชชเชฐเชฟเชฎเชพเชฃเซเชฎเชพเชเชจเซเช เชเช เชเซ. เชเซเชฏเชพเชฐเซ เชชเชฃ เชคเชฎเซ เชจเซเชเซเชจเชพ เชญเซเชฒ เชธเชเชฆเซเชถเชพเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชเซ, เชคเซเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ 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.
เชตเซเชฏเชพเชเซเชฏเชพเชเชฎเชพเช เชคเชซเชพเชตเชคเซเชจเซ เชธเชฎเชเชตเซเช
Linux เช เชจเซ MacOS X เชชเชฐ SHMMAX/SHMALL เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเซเช เชฅเซเชกเซเช เช เชฒเช เชเซ:
- 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 เชฎเซเชฎเชฐเซ เชชเซเชทเซเช เซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชธเซเชชเชฐ เชชเชพเชจเชพ, เช เชจเซ เชตเชฟเชจเซเชกเซเช เชชเชฐ - เชฎเซเชเชพ เชชเชพเชจเชพ. เชชเซเชทเซเช เช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซ เชซเชพเชณเชตเซเชฒ RAM เชจเซ เชเช เชญเชพเช เชเซ. เชฎเซเชฎเชฐเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชเชงเชพเชฐเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชฌเชนเซเชตเชฟเชง เชชเซเชทเซเช เซ เชนเซเช เชถเชเซ เชเซ. เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเซเชเชฒเซ เชตเชงเซ เชฎเซเชฎเชฐเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชเซ, เชคเซเชเชฒเชพ เชตเชงเซ เชชเซเชทเซเช เซ เชซเชพเชณเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. OS เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชฎเชพเชเซ เชชเซเชทเซเช เชซเชพเชณเชตเชฃเซ เชเซเชทเซเชเช เชเชพเชณเชตเซ เชฐเชพเชเซ เชเซ. เชชเซเชทเซเช เชจเซเช เชเชฆ เชเซเชเชฒเซเช เชจเชพเชจเซเช เชเซ, เชเซเชฌเชฒ เชเซเชเชฒเซเช เชฎเซเชเซเช เชเซ, เชคเซ เชชเซเชทเซเช เชเซเชทเซเชเชเชฎเชพเช เชชเซเชทเซเช เชถเซเชงเชตเชพเชฎเชพเช เชคเซเชเชฒเซ เชตเชงเซ เชธเชฎเชฏ เชฒเซ เชเซ. เชคเซเชฅเซ เชฎเซเชเชพ เชชเซเชทเซเช เซ เชเชเซ เชเชตเชฐเชนเซเชก เชธเชพเชฅเซ เชฎเซเชเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชฎเซเชฎเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ; เชเชเชพ เชชเซเชทเซเช เชฆเซเชถเซเชฏเซ, เชเชเชพ เชชเซเชทเซเช เชเชพเชฎเซเช, เชฎเซเชเชพ เชฌเชซเชฐเซเชธ เชชเชฐ เชเชกเชชเซ เชตเชพเชเชเชจ/เชฒเซเชเชตเชพเชจเซ เชเชพเชฎเชเซเชฐเซ. เชชเชฐเชฟเชฃเชพเชฎ เชธเซเชงเชพเชฐเซเชฒ เชชเซเชฐเชฆเชฐเซเชถเชจ เชเซ.
PostgreSQL เชซเชเซเชค Linux เชชเชฐ เชฎเซเชเชพ เชชเซเชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ. เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, Linux 4 KB เชฎเซเชฎเชฐเซ เชชเซเชทเซเช เซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซเชฅเซ เชเชตเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช เชเซ เชเซเชฏเชพเช เชเชฃเซ เชฌเชงเซ เชฎเซเชฎเชฐเซ เชเชชเชฐเซเชถเชจ เชนเซเชฏ, เชฎเซเชเชพ เชชเซเชทเซเช เซ เชธเซเช เชเชฐเชตเชพ เชเชฐเซเชฐเซ เชเซ. 2 MB เช เชจเซ 1 GB เชธเซเชงเซเชจเชพ เชฎเซเชเชพ เชชเซเชทเซเช เซเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฒเชพเชญ เชเซเชตเชพ เชฎเชณเซ เชเซ. เชฎเซเชเชพ เชชเซเชทเซเช เชจเซเช เชเชฆ เชฌเซเช เชธเชฎเชฏเซ เชธเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชคเชฎเซ เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเชฎเชพเชฐเชพ Linux เชฎเชถเซเชจ เชชเชฐ เชฎเซเชเชพ เชชเซเชทเซเช เชชเชฐเชฟเชฎเชพเชฃเซ เช เชจเซ เชคเซเชฎเชจเชพ เชตเชชเชฐเชพเชถเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชเชเชพเชธเซ เชถเชเซ เชเซ cat /proc/meminfo | grep -i เชตเชฟเชถเชพเชณ.
เชฎเซเชเชพ เชชเซเชทเซเช เซ เชตเชฟเชถเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเชตเซ (เชซเชเซเชค เชฒเชฟเชจเชเซเชธ)
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 เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชคเชฎเชพเชฐเชพ Linux เชธเชฐเซเชตเชฐ เชชเชฐ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซ. เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒ เชฎเชพเชเซ $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 เช เชจเซเชฏ เชเชฐเซเชจเชฒ เชชเชฐเชฟเชฎเชพเชฃ เชเซ เชเซ เชกเซเชเชพเชฌเซเช เชชเซเชฐเชญเชพเชตเชจเซ เช เชธเชฐ เชเชฐเซ เชถเชเซ เชเซ. เช เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช Linux เชฎเชพเช เช เชฆเชฒเชพเชฌเชฆเชฒเซ (เชฎเซเชฎเชฐเซเชฎเชพเชเชฅเซ เช เชจเซ เชฌเชนเชพเชฐ เชชเซเชทเซเช เซ เชธเซเชตเซเชชเชฟเชเช) เชจเชพ เชตเชฐเซเชคเชจเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชเชฟเชเชฎเชค 0 เชฅเซ 100 เชธเซเชงเซเชจเซ เชเซ. เชคเซ เชจเชเซเชเซ เชเชฐเซ เชเซ เชเซ เชเซเชเชฒเซ เชฎเซเชฎเชฐเซ เชชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชฅเชตเชพ เชชเซเช เชเชเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชถเซเชจเซเชฏ เชเชเชฒเซ เชเซเช เชตเชฟเชจเชฟเชฎเชฏ เชจเชนเซเช เช เชจเซ 100 เชเชเชฒเซ เชเชเซเชฐเชฎเช เชตเชฟเชจเชฟเชฎเชฏ.
เชคเชฎเซ เชจเซเชเชพ เชฎเซเชฒเซเชฏเซ เชธเซเช เชเชฐเซเชจเซ เชธเชพเชฐเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเซเชณเชตเซ เชถเชเซ เชเซ.
เชจเชตเชพ เชเชฐเซเชจเชฒ เชชเชฐ เชเชจเซ 0 เชชเชฐ เชธเซเช เชเชฐเชตเชพเชฅเซ OOM เชเชฟเชฒเชฐ (เชฒเชฟเชจเชเซเชธเชจเซ เชฎเซเชฎเชฐเซ เชเซเชฒเชฟเชจเชฟเชเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ) เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชธเชฎเชพเชชเซเชค เชเชฐเซ เชถเชเซ เชเซ. เชคเซเชฅเซ เชเซ เชคเชฎเซ เชธเซเชตเซเชชเชฟเชเชเชจเซ เชเชเซเช เชเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซเชต เชคเซ เชคเซเชจเซ 1 เชชเชฐ เชธเซเช เชเชฐเชตเซเช เชธเชฒเชพเชฎเชค เชเซ. Linux เชฎเชพเช เชกเชฟเชซเซเชฒเซเช เชฎเซเชฒเซเชฏ 60 เชเซ. เชเชเชเซ เชเชฟเชเชฎเชค MMU (เชฎเซเชฎเชฐเซ เชฎเซเชจเซเชเชฎเซเชจเซเช เชฏเซเชจเชฟเช) เชจเซ RAM เชเชฐเชคเชพเช เชตเชงเซ เชธเซเชตเซเชช เชเชเซเชฏเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชเซ, เชเซเชฏเชพเชฐเซ เชเชเซ เชเชฟเชเชฎเชค เชฎเซเชฎเชฐเซเชฎเชพเช เชตเชงเซ เชกเซเชเชพ/เชเซเชก เชฐเชพเชเซ เชเซ.
PostgreSQL เชฎเชพเช เชฌเชนเซเชคเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชเซ เชจเซเชเซเช เชฎเซเชฒเซเชฏ เช เชธเชพเชฐเซ เชถเชฐเชค เชเซ.
vm.overcommit_memory / vm.overcommit_ratio
เชเชชเซเชฒเชฟเชเซเชถเชจเซเชธ เชฎเซเชฎเชฐเซ เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชเซเชฏเชพเชฐเซ เชคเซเชจเซ เชเชฐเซเชฐ เชจ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชฎเซเชเซเชค เชเชฐเซ เชเซ. เชชเชฐเชเชคเซ เชเซเชเชฒเชพเช เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชเชชเซเชฒเชฟเชเซเชถเชจ เชเซเชฌ เชฎเซเชฎเชฐเซ เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเซเชกเชคเซ เชจเชฅเซ. เช OOM เชเชฟเชฒเชฐเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชถเชเซ เชเซ. เช เชนเซเช เชธเชเชญเชตเชฟเชค เชชเชฐเชฟเชฎเชพเชฃ เชฎเซเชฒเซเชฏเซ เชเซ vm.overcommit_memory เชฆเชฐเซเช เชฎเชพเชเซ เชตเชฐเซเชฃเชจ เชธเชพเชฅเซ:
- เชนเซเชฏเซเชฐเชฟเชธเซเชเชฟเช เชเชตเชฐเชเชฎเชฟเช (เชกเชฟเชซเซเชฒเซเช); เชเชฐเซเชจเชฒ เชเชงเชพเชฐเชฟเชค เชธเชเชถเซเชงเชจเชพเชคเซเชฎเช
- เชเซเชเชชเชฃ เชฐเซเชคเซ เชเชตเชฐเชเชฎเชฟเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ
- เชคเซเชจเซ เชตเชงเซเชชเชกเชคเซเช เชจ เชเชฐเซ, เชเชตเชฐเชเชฎเชฟเช เชฐเซเชถเชฟเชฏเซเชจเซ เชเชณเชเชเชถเซ เชจเชนเซเช.
เชฒเชฟเชเช:
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 เชจเซ เชจเซเชเซเชจเซเช เชฎเซเชฒเซเชฏ เชฌเชฟเชจเช เชธเชฐเชเชพเชฐเช เชนเซเช เชถเชเซ เชเซ เช เชจเซ เชเซเชเชฒเชพเช เชเชฐเซเชจเชฒ เชคเซเชจเซ เชธเชชเซเชฐเซเช เชเชฐเชคเชพ เชจเชฅเซ. เชฎเซเชเชพเชญเชพเชเชจเซ Linux เชธเชฟเชธเซเชเชฎเซ เชชเชฐ 10 เช เชกเชฟเชซเซเชฒเซเช เชเซ. เชคเชฎเซ เชจเชพเชจเชพ เชชเชฐเชฟเชฌเชณ เชฆเซเชตเชพเชฐเชพ เชฒเซเชเชจ-เชธเชเชจ เชเชพเชฎเชเซเชฐเซ เชฎเชพเชเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชธเซเชงเชพเชฐเซ เชถเชเซ เชเซ, เชเซเชจเซ เช เชฐเซเชฅ เช เชฅเชถเซ เชเซ 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