GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat sdílenou paměť Linuxu pomocí příkazu ipcs

Sdílená paměť je paměť, ke které může přistupovat více procesů; tj. oblast paměti, kterou lze sdílet mezi různými procesy a lepší způsob předávání dat mezi dvěma procesy. Sdílená paměť je nejrychlejší formou meziprocesové komunikace, která je v současné době k dispozici.

Předpokládejme, že program vytvoří paměťovou část, ke které může přistupovat jiný proces (pokud je to povoleno). Sdílený segment lze stejným procesem připojit vícekrát. Kdykoli je paměť mapována do adresového prostoru procesu, tj. sdílí společnou paměťovou oblast, jádro se nezapojí do předávání dat mezi procesy. Mnoho aplikací, jako je Oracle SGA, vyžaduje nastavení sdílené paměti, využívá tuto funkci.

Podívejme se na některé příkazy IPCS prostřednictvím několika příkladů.

Vytiskněte aktivní segmenty sdílené paměti pomocí -m možnost.

kde,

stav "dest" znamená, že paměťový segment je označen jako zničený
pole "nattach" ukazuje, kolik aplikačních PID je stále připojeno ke sdílené paměti

# 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

Následující příkaz vytiskne informace o aktivních segmentech sdílené paměti:

# ipcs -q
------ Message Queues --------
key msqid owner perms used-bytes messages

Tisk informací o aktivních frontách sdílené paměti:

# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems

Tisk informací o semaforech, které jsou přístupné semafory. Ipcs -l ukazuje limit sdílené paměti, semaforů a zpráv.

# 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

Níže uvedený příkaz ukazuje maximální velikost jednoho segmentu paměti, který může proces Linuxu alokovat ve svém virtuálním adresním prostoru. Maximální velikost jednoho segmentu paměti můžete omezit provedením následujícího příkazu.

# cat /proc/sys/kernel/shmmax
4294967295

Hodnotu shmmax můžete nastavit ozvěnou do příslušného souboru /proc, jak je uvedeno níže. Následující příkaz nastaví maximální velikost (ve smyslu bajtů) jeden segment paměti je nastaven na 8388698:

# echo 8388608 > /proc/sys/kernel/shmmax

Podobným způsobem můžete nastavit maximální povolenou velikost jakékoli jednotlivé zprávy ve frontě zpráv IPC System V v bajtech.

# echo 8192 > /proc/sys/kernel/msgmax

Pomocí následujícího příkazu můžete zkontrolovat aktuální parametr jádra na semafor.

# cat /proc/sys/kernel/sem
250 32000 32 128
where
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

Závěr

V tomto tutoriálu jsme se naučili příkaz Linux ipcs pro kontrolu informací o sdílené paměti. Doufám, že se vám čtení líbilo a zanechte prosím své návrhy v sekci komentářů níže.


Linux
  1. Jak zkontrolovat velikost RAM v příkazovém řádku Linuxu v GB

  2. Jak zabít proces v Linuxu pomocí příkazu?

  3. Jak zkontrolovat využití paměti na serveru se systémem Linux

  1. Jak zkontrolovat využití paměti procesu pomocí příkazu Linux pmap

  2. Příklady příkazů ipcs v Linuxu

  3. Jak zkontrolovat OS a verzi pomocí příkazu Linux

  1. Jak zkontrolovat využití paměti v Linuxu, 5 jednoduchých příkazů

  2. Jak zkontrolovat, zda je systém Linux 32bitový nebo 64bitový

  3. Jak restartovat Linux pomocí příkazového řádku