LINUX

Cómo verificar la memoria compartida de Linux usando el comando ipcs

Memoria compartidaLa memoria compartida es la memoria a la que pueden acceder múltiples procesos; es decir, una región de memoria que se puede compartir entre diferentes procesos y una mejor forma de pasar datos entre dos procesos. La memoria compartida es la forma más rápida de comunicación entre procesos que está disponible actualmente.

Suponga que el programa creará una parte de la memoria, a la que puede acceder otro proceso (si está permitido). Un segmento compartido se puede adjuntar varias veces mediante el mismo proceso. Siempre que la memoria se mapee en el espacio de direcciones del proceso, es decir, compartiendo la región de memoria común, el kernel no se involucrará al pasar datos entre los procesos. Muchas aplicaciones, como Oracle SGA, requieren una configuración de memoria compartida, utilizan esta función.

Veamos algunos comandos de IPCS a través de algunos ejemplos.

Imprima segmentos activos de memoria compartida usando -m opción.

dónde,

El estado «dest» significa que el segmento de memoria está marcado para ser destruido
El campo «nattach» muestra cuántos pid de la aplicación todavía están conectados a la memoria compartida

# 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

El siguiente comando imprime información sobre los segmentos de memoria compartida activos:

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

Imprima información sobre colas de memoria compartida activas:

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

Imprime información sobre semáforos que son semáforos accesibles. El ipcs -l muestra el límite de memoria compartida, semáforos y mensajes.

# 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

El siguiente comando muestra el tamaño máximo del segmento de memoria único que el proceso de Linux puede asignar en su espacio de direcciones virtuales. Puede limitar el tamaño máximo de un solo segmento de memoria ejecutando el siguiente comando.

# cat /proc/sys/kernel/shmmax
4294967295

Puede establecer el valor shmmax haciendo eco en el archivo / proc correspondiente como se muestra a continuación. El siguiente comando establecerá el tamaño máximo (en términos de bytes) el segmento de memoria único se establece en 8388698:

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

De manera similar, puede establecer el tamaño máximo permitido de cualquier mensaje individual en una cola de mensajes de IPC de System V, en bytes.

[root@localhost kernel]# echo 8192 > /proc/sys/kernel/msgmax

Puede verificar el parámetro actual del kernel para semáforo con el siguiente comando.

# 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

Conclusión

En este tutorial, aprendimos el comando ipcs de Linux para verificar la información de la memoria compartida. Espero que haya disfrutado de la lectura y deje sus sugerencias en la sección de comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar