GNU/Linux >> Linux Esercitazione >  >> Linux

Come controllare la memoria condivisa di Linux usando il comando ipcs

La memoria condivisa è la memoria a cui si può accedere da più processi; cioè una regione di memoria che può essere condivisa tra diversi processi e un modo migliore per passare i dati tra due processi. La memoria condivisa è la forma più veloce di comunicazione tra processi attualmente disponibile.

Si supponga che il programma creerà una porzione di memoria, a cui un altro processo può accedere (se consentito). Un segmento condiviso può essere collegato più volte con lo stesso processo. Ogni volta che la memoria viene mappata nello spazio degli indirizzi del processo, ovvero condividendo la regione di memoria comune, il kernel non coinvolgerà il passaggio dei dati tra i processi. Molte applicazioni, come Oracle SGA richiedono impostazioni di memoria condivisa, utilizzano questa funzione.

Esaminiamo alcuni comandi IPCS attraverso alcuni esempi.

Stampa i segmenti di memoria condivisa attivi usando -m opzione.

dove,

Lo stato "dest" significa che il segmento di memoria è contrassegnato per essere distrutto
Il campo "nattach" mostra quanti pid dell'applicazione sono ancora collegati alla memoria condivisa

# 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

Il comando seguente stampa le informazioni sui segmenti di memoria condivisa attivi:

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

Stampa informazioni sulle code di memoria condivisa attive:

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

Stampa informazioni sui semafori che sono semafori accessibili. Ipcs -l mostra il limite di memoria condivisa, semafori e messaggi.

# 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

Il comando seguente mostra la dimensione massima del singolo segmento di memoria che il processo Linux può allocare nel suo spazio di indirizzi virtuali. Puoi limitare la dimensione massima del singolo segmento di memoria eseguendo il comando seguente.

# cat /proc/sys/kernel/shmmax
4294967295

È possibile impostare il valore shmmax facendo eco al file /proc interessato come di seguito. Il comando seguente imposterà la dimensione massima (in termini di byte) il singolo segmento di memoria è impostato su 8388698:

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

In modo simile, puoi impostare la dimensione massima consentita di ogni singolo messaggio in una coda di messaggi IPC di System V, in byte.

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

Puoi controllare il parametro del kernel corrente per semaforo con il comando seguente.

# 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

Conclusione

In questo tutorial, abbiamo imparato il comando ipcs di Linux per controllare le informazioni sulla memoria condivisa. Spero che ti sia piaciuto leggere e per favore lascia i tuoi suggerimenti nella sezione commenti qui sotto.


Linux
  1. Come controllare l'utilizzo della memoria del processo con il comando pmap di Linux

  2. Come controllare la dimensione della RAM nella riga di comando di Linux in Gb

  3. Come verificare se un sistema Linux è a 32 o 64 bit

  4. Come riavviare Linux utilizzando la riga di comando

  5. Come uccidere un processo su Linux usando il comando?

Comando gratuito Linux (controlla l'utilizzo della memoria)

Come controllare le informazioni sulla CPU in Linux

Come controllare la cronologia dei comandi di Linux in base alle date

Come eseguire periodicamente un comando in Linux usando Watch

Come controllare la velocità di Internet in Linux

Come controllare le porte aperte in Linux?