真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PostgreSQL--信號(hào)量和shmall和shmmax相關(guān)設(shè)置

一、shared_buffers與shmmax,shmall,max_connections的關(guān)系

1.1、shared_buffers與max_connections的關(guān)系

shared_buffers 是查詢(xún)緩存,設(shè)置比較大可以提高PostgreSQL的效率,一般建議設(shè)置為系統(tǒng)內(nèi)存的3/4,但是必須不少于128KB,并且不少于16KB乘以max_connections
?

做網(wǎng)站、網(wǎng)站設(shè)計(jì)的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給創(chuàng)新互聯(lián)一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶(hù)友好,注重用戶(hù)體驗(yàn),一切以用戶(hù)為中心。

1.2、shared_buffers與shmmax,shmall的關(guān)系

shared_buffers該參數(shù)不能超過(guò)由操作系統(tǒng)參數(shù)SHMMAX指定的值

內(nèi)核的 shmall 和 shmmax 參數(shù)設(shè)置在/etc/sysctl.conf文件中,通過(guò)sysctl -p 可以生效

SHMMAX= 配置了最大的內(nèi)存segment的大小 ------>這個(gè)設(shè)置的比SGA_MAX_SIZE大比較好。

SHMMIN= 最小的內(nèi)存segment的大小

SHMMNI= 整個(gè)系統(tǒng)的內(nèi)存segment的總個(gè)數(shù)

SHMSEG= 每個(gè)進(jìn)程可以使用的內(nèi)存segment的最大個(gè)數(shù)

shmall 是全部允許使用的共享內(nèi)存大小,shmmax 是單個(gè)段允許使用的大小。這兩個(gè)可以設(shè)置為內(nèi)存的 90%。例如 16G 內(nèi)存,1610241024102490% = 15461882265,shmall 的大小為 15461882265/4k(getconf PAGESIZE可得到) = 3774873。
修改 /etc/sysctl.conf
kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535
執(zhí)行 sudo sysctl -p
可以使用 ipcs -l 看結(jié)果。ipcs -u 可以看到實(shí)際使用的情況

備注:shmmax & shmall 在PostgreSQL9.3開(kāi)始,將共享內(nèi)存從system V 修改為Posix和mmap方式,不再需要設(shè)置linux系統(tǒng)的shmmax參數(shù)

二、max_connections與信號(hào)量的關(guān)系

如果max_connections設(shè)置太大,信號(hào)量被消耗完畢,有可能會(huì)導(dǎo)致PostgreSQL無(wú)法啟動(dòng)

2.1、信號(hào)量設(shè)置

信號(hào)量控制設(shè)置在/etc/sysctl.conf文件中,通過(guò)sysctl -p 可以生效,該文件用于控制內(nèi)核信號(hào)量,信號(hào)量是System VIPC用于進(jìn)程間通訊的方法。

kernel.sem = 250 512000 100 2048

?

2.2、查詢(xún)當(dāng)前信號(hào)量使用情況

查看當(dāng)前信號(hào)量使用情況
PostgreSQL--信號(hào)量和shmall 和 shmmax相關(guān)設(shè)置
?

2.3、查看當(dāng)前的設(shè)置:

cat /proc/sys/kernel/sem
PostgreSQL--信號(hào)量和shmall 和 shmmax相關(guān)設(shè)置
這四個(gè)數(shù)字分別是:SEMMSL,SEMMNS,SEMOPM,SEMMNI
SEMMSL:內(nèi)核參數(shù),控制每個(gè)信號(hào)量集合的最大信號(hào)數(shù)。
SEMMNS:內(nèi)核參數(shù),控制系統(tǒng)范圍內(nèi)能使用的最大信號(hào)量數(shù)。
SEMOPM:semop()函數(shù)(內(nèi)核函數(shù),用來(lái)操作信號(hào)量)每次調(diào)用鎖能操作的一個(gè)信號(hào)量集中的最大信號(hào)量。
SEMMNI:內(nèi)核中信號(hào)量集的最大數(shù)量。
SEMMNS=SEMMSL*SEMMNI
SEMOPM=SEMMSL,這兩個(gè)參數(shù)一般設(shè)置為相同。
?

2.4、信號(hào)量設(shè)置計(jì)算

對(duì)于PostgreSQL數(shù)據(jù)庫(kù)來(lái)說(shuō):
SEMMNI >= ceil((max_connections + autovacuum_max_workers + 4) / 16)
SEMMSL >= 17
假設(shè)一個(gè)PG庫(kù)如下設(shè)置:
max_connections=1000, autovacuum_max_workers =3,
則這幾個(gè)參數(shù)的設(shè)置是:
SEMMNI = ceil((1000+3+4))/16)=63,因?yàn)榭紤]到其他進(jìn)程使用,一般設(shè)置為63+25=88
SEMMSL要求大于17,保持默認(rèn)250
SEMOPM=SEMSL=250
SEMMNS=SEMMNIMSMMSL=88250=22000
在/etc/sysctl.conf文件中添加:

kernel.sem=250  22000 250  88
運(yùn)行:sysctl -p   生效 

使配置生效
設(shè)置完成之后,如果啟動(dòng)數(shù)據(jù)庫(kù)還是報(bào)同樣的錯(cuò)誤,那么可以重啟操作系統(tǒng)再試試。


網(wǎng)站標(biāo)題:PostgreSQL--信號(hào)量和shmall和shmmax相關(guān)設(shè)置
新聞來(lái)源:http://weahome.cn/article/pcphes.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部