挺常見的一個(gè)現(xiàn)象新思,原因多種多樣,這里給一個(gè)可能比較適合測(cè)試環(huán)境的解決辦法
測(cè)試環(huán)境猪叙,經(jīng)常需要重置數(shù)據(jù)庫(kù)環(huán)境娇斩,保證測(cè)試不受干擾。有時(shí)候穴翩,就會(huì)出現(xiàn)這種情況犬第,因?yàn)橐粋€(gè)用戶頻繁的重置數(shù)據(jù)庫(kù),之前已經(jīng)申請(qǐng)的共享內(nèi)存沒有釋放芒帕,導(dǎo)致資源不夠了歉嗓。
Linux有個(gè)ipcs
命令,可以查看進(jìn)程間通信的資源消耗情況副签,其中就包括共享內(nèi)存
[root@localhost ~]# ipcs -a | head -3
------ Message Queues --------
key msqid owner perms used-bytes messages
[root@localhost ~]# ipcs -m | grep guqi
0x030a36a9 1848508454 guqi 600 56 8
0x030a3e79 355860788 guqi 600 56 9
0x030a4261 564920631 guqi 600 56 9
0x030bb961 837911127 guqi 600 56 6
0x030a5db9 358580826 guqi 600 56 9
0x030a4e19 355992199 guqi 600 56 7
0x030a55e9 356024985 guqi 600 56 7
0x030a5201 356057754 guqi 600 56 7
0x030d4001 847217377 guqi 600 56 7
0x030a4a31 469304034 guqi 600 56 6
0x030a59d1 356090595 guqi 600 56 7
0x030a61a1 470975204 guqi 600 56 6
0x030d43e9 868123365 guqi 600 56 5
[root@localhost ~]#
常用的幾個(gè)參數(shù)
ipcs -m 查看系統(tǒng)使用的IPC共享內(nèi)存資源
ipcs -q 查看系統(tǒng)使用的IPC隊(duì)列資源
ipcs -s 查看系統(tǒng)使用的IPC信號(hào)量資源
ipcs -l 查看系統(tǒng)的IPC相關(guān)參數(shù)的設(shè)置情況
與之配套的另一個(gè)命令ipcrm
遥椿,可以清理這些IPC資源
ipcrm -M shmkey 移除用shmkey創(chuàng)建的共享內(nèi)存段
ipcrm -m shmid 移除用shmid標(biāo)識(shí)的共享內(nèi)存段
ipcrm -Q msgkey 移除用msqkey創(chuàng)建的消息隊(duì)列
ipcrm -q msqid 移除用msqid標(biāo)識(shí)的消息隊(duì)列
ipcrm -S semkey 移除用semkey創(chuàng)建的信號(hào)
ipcrm -s semid 移除用semid標(biāo)識(shí)的信號(hào)
所以回到最初那個(gè)問題,有個(gè)一鍵恢復(fù)的命令
ipcs -m | grep 用戶名 | grep -v grep | awk '{print $2}' | xargs -n1 ipcrm -m