ΠΡΠ΅Π²ΠΎΠ΄ΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π±Π΅ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π² Π½Π°Π²Π΅ΡΠ΅ΡΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΊΡΡΡΠ°
Π‘Π΅ΠΌΠ°ΡΠΎΡΡΡ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠ°ΡΠΈ ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π½ΠΈΡΠΊΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΡΡΠ΅Π·Π°Π½ΠΈΡ, Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈΡ (Π²Π·Π°ΠΈΠΌΠ½ΠΈ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ) ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½ΠΈΡΠΊΠΈ.
ΠΠ° Π΄Π° ΡΠ΅ΡΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ ΠΌΡΡΠ΅ΠΊΡΠΈ, ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ, ΡΠΈΠ³Π½Π°Π»ΠΈ ΠΈ Π±Π°ΡΠΈΠ΅ΡΠΈ.
ΠΠΌΠ° ΡΡΠΈ Π²ΠΈΠ΄Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ:
- ΠΠ²ΠΎΠΈΡΠ½ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ
- Π‘Π΅ΠΌΠ°ΡΠΎΡΠΈ-Π±ΡΠΎΡΡΠΈ (ΡΠ΅ΠΌΠ°ΡΠΎΡ Π·Π° Π±ΡΠΎΠ΅Π½Π΅)
- ΠΠ°ΡΠΈΠ²ΠΈ ΠΎΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ (ΡΠ΅ΠΌΠ°ΡΠΎΡΠ΅Π½ Π½Π°Π±ΠΎΡ)
ΠΠΈΠΆΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° IPC
Π‘Π»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ (IPC).
# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest
0x00000000 131074 root 600 393216 2 dest
0x00000000 163843 root 600 393216 2 dest
0x00000000 196612 root 600 393216 2 dest
0x00000000 229381 root 600 393216 2 dest
0x00000000 262150 root 600 393216 2 dest
0x00000000 294919 root 600 393216 2 dest
0x00000000 327688 root 600 393216 2 dest
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
ΠΠΊΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΎΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ
ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ.
# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°
ΠΠΈΠΆΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ.
# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest
ΠΡΠ°Π½ΠΈΡΠΈ
ΠΡΠ±ΠΎΡ ipcs -l
ΠΏΠΎΠΊΠ°Π·Π²Π° Π»ΠΈΠΌΠΈΡΠΈΡΠ΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 1073741824
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536
Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ.
# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest
0x00000000 131074 root 600 393216 2 dest
0x00000000 163843 root 600 393216 2 dest
0x00000000 196612 root 600 393216 2 dest
0x00000000 229381 root 600 393216 2 dest
0x00000000 262150 root 600 393216 2 dest
0x00000000 294919 root 600 393216 2 dest
0x00000000 327688 root 600 393216 2 dest
Π‘ΡΠ·Π΄Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠΈ
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠ°ΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° ΠΈ ΡΡΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΡΡΡΡΠ°.
# ipcs -m -c
------ Shared Memory Segment Creators/Owners --------
shmid perms cuid cgid uid gid
65536 600 root root root root
98305 600 root root root root
131074 600 root root root root
163843 600 root root root root
196612 600 root root root root
229381 600 root root root root
262150 600 root root root root
294919 600 root root root root
327688 600 root root root root
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° IPC ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ -u
ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ IPC ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.
# ipcs -u
------ Shared Memory Status --------
segments allocated 9
pages allocated 864
pages resident 477
pages swapped 0
Swap performance: 0 attempts 0 successes
------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0
------ Messages: Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ° ΡΠΏΡΠ΅Π½ΠΈ, ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈΡΠ΅ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΡΠΈΡΠΈ. ΠΠΊΠΎ Π½Π΅ ΡΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ, ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ipcrm, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π°Π΄Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ Π½Π° IPC ΠΎΠ±Π΅ΠΊΡΠ°.
# ipcs -a
# ipcrm -s < sem id>
ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ sysctl
.
# /sbin/sysctl -w kernel.sem=250
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com