์๋ฒ์ Tibero๋ฅผ ์ค์นํ ๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ณ ์ฌ๊ธฐ๋ํ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.
$ tbboot
semget failed.: No space left on device
***************************************************************************
* Cannot get semaphore:
* key = 0xe6fff4e, errno=28
***************************************************************************
Tibero instance startup failed!
nomount ์ต์ ์ ์ฃผ์ด ๋ค์ ๊ธฐ๋ํด๋ณด์๋ ์๋ฌ ๋ฉ์์ง๋ง ์กฐ๊ธ ๋ณ๊ฒฝ๋ ๋ฟ ๊ธฐ๋์ด ๋์ง ์๋ ๋ชจ์ต์ด๋ค.
$ tbboot nomount
***************************************************************************
* A shared memory segment with the same key already exists.
* SHM_KEY = 0xadd1c6e8
* Trying to reuse the shared memory segment....
***************************************************************************
semget failed.: No space left on device
***************************************************************************
* Cannot get semaphore:
* key = 0xe6fff4e, errno=28
***************************************************************************
Listener port = 8629
Tibero instance startup failed!
์ฃผ์ ๋ด์ฉ์ ์ดํด๋ณด๋ฉด, ๋์ถฉ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ ๊ธฐ๋์ ํ์ง ๋ชปํ๋ค๋? ์์ ๋ด์ฉ์ธ ๊ฒ ๊ฐ๋ค.
semget failed.: No space left on device
A shared memory segment with the same key already exists.
Cannot get semaphore:
ํด๊ฒฐ ๋ฐฉ๋ฒ
Tibero๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๋ จ๋ Key(SHM_KEY, SEM_KEY)๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด Key์ ๊ณต๊ฐ์ด ํ๋ณด๋์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋๋ฌธ์ Shared Memory๋ฅผ ํ๋ณดํด์ฃผ์ด์ผ ํ๋ฉฐ, ipcrm ๋ช ๋ น์ ์ด์ฉํ๋ฉด ๋๋ค.
$ ipcs # ํ์ธ
$ ipcs -s # Semaphore Arrays ํ์ธ
$ ipcs -m # Shared Memory ํ์ธ
$ ipcrm -a # ์ ์ฒด Clear
ipcrm -a ๋ช ๋ น์ผ๋ก ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์์ฃผ์๋๋ฐ๋ tbboot๊ฐ ๋์ํ์ง ์๋๋ค๋ฉด, root ๊ถํ์ผ๋ก ๋ค์ ํ์ผ์ ์์ ํ๋ค.
$ vi /etc/sysctl.conf
kernel.sem = 10000 32000 10000 10000
ํ์ผ ์์ > ์ ์ฅ ํ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ถ๊ฐ๋ kernel.sem์ ๋ฐ์ํ๋ค.
sysctl.conf > kernel.sem์ ๋ฌด์จ ์ต์ ์ธ๊ฐ?
kernel.sem์ด๋?
Linux ์ปค๋ ์ธ๋งํฌ์ด ํ๋ผ๋ฏธํฐ ์ค์ ์ผ๋ก, sysctl.conf์์ ๋ฐํ์ ์ค ์ปค๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ ์ ์๋ค.
- ์ธ๋งํฌ์ด(Semaphore) : ๋ ๊ฐ์ ์์์ ํจ์๋ก ์กฐ์๋๋ ์ ์ ๋ณ์๋ก์, ๋ฉํฐํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ๊ณต์ ์์์ ๋ํ ์ ๊ทผ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋จ. (๊ต์ฐฉ ์ํ๋ฅผ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ค ํ๋)
$ cat /proc/sys/kernel/sem
10000 32000 10000 10000
$ ipcs -l | grep -A5 Semaphore
------ Semaphore Limits --------
max number of arrays = 10000
max semaphores per array = 10000
max semaphores system wide = 32000
max ops per semop call = 10000
semaphore max value = 32767
kernel/sem์์ ์ต์ ์์ : SEMMSL > SEMMNS > SEMOPM > SEMMNI
- SEMMNI(max number of arrays) : ์ต๋ ๋ฐฐ์ด ์
- SEMMSL(max semaphores per array) : ๋ฐฐ์ด๋น ์ต๋ ์ธ๋งํฌ์ด ์
- SEMMNS(max semaphores system wide) : ์์คํ ์ ์ฒด ์ต๋ ์ธ๋งํฌ์ด ์
- SEMOPM(max ops per semop call) : ์ธ๋งํฌ์ด ํธ์ถ๋น ์ต๋ Operation ์
$ sudo sysctl -p
๋ค์ Tibero๋ฅผ ์คํํด๋ณด๋ฉด ์ ์ ๊ธฐ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.