ΠΡΠ΅Π²ΠΎΠ΄ΠΎΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π²ΠΎ ΠΏΡΠ΅ΡΡΠ΅Ρ Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° ΠΊΡΡΡΠΎΡ
Π‘Π΅ΠΌΠ°ΡΠΎΡΠΎΡ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ ΠΊΠΎΡ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ Π½ΠΈΡΠΊΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π²ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΡΠΊΠΈ, ΡΠΎΡ-ΡΠΎΠΊΠ°ΠΊ ΠΈ Π½Π΅ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΈΡΠΊΠΈΡΠ΅.
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΠΎΠ΄ΡΠΆΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΌΡΡΠ΅ΠΊΡΠΈ, ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ, ΡΠΈΠ³Π½Π°Π»ΠΈ ΠΈ Π±Π°ΡΠΈΠ΅ΡΠΈ.
ΠΠΎΡΡΠΎΡΠ°Ρ ΡΡΠΈ ΡΠΈΠΏΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ:
- ΠΠΈΠ½Π°ΡΠ΅Π½ ΡΠ΅ΠΌΠ°ΡΠΎΡ
- Π‘Π΅ΠΌΠ°ΡΠΎΡ Π·Π° Π±ΡΠΎΠ΅ΡΠ΅
- ΠΠΈΠ·ΠΈ ΠΎΠ΄ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ (ΡΠ΅Ρ Π½Π° ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ)
ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π³ΠΎ ΡΡΠ°ΡΡΡΠΎΡ Π½Π° 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 Tools
ΠΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡ ΠΏΠΎΠ΄ΠΎΠ»Ρ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ -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