Limites de comunicação interprocessos

Este tópico descreve os limites do sistema para os mecanismos de comunicação Interprocess (IPC).

Em alguns sistemas UNIX, o administrador do sistema pode editar o arquivo /etc/master e definir limites para os mecanismos de IPC (semáforos, segmentos de memória compartilhada e filas de mensagens). O problema com esse método é que quanto mais altos os limites, mais memória o sistema operacional usa, e o desempenho pode ser prejudicado.

AIX usa um método diferente. No AIX, os limites superiores são definidos para os mecanismos IPC, que não são configuráveis. As estruturas de dados individuais do IPC são alocadas e desalocadas conforme necessário, portanto, os requisitos de memória dependem do uso atual do sistema de mecanismos IPC.

Essa diferença de métodos às vezes confunde usuários que estão instalando ou usando bancos de dados. O limite que é o mais confuso é o número máximo de segmentos de memória compartilhada que podem ser anexados simultaneamente por processo. Para 64-bit processos, o número máximo de segmentos de memória compartilhada é de 268435456. Para processos de 32-bit bits, o número máximo de segmentos de memória compartilhada é de 11, a menos que a capacidade estendida shmat seja usada.

As tabelas a seguir resumem os limites de semáforo em mecanismos IPC.
Semáforos 7.1 7.2 7.3
Número máximo de IDs de semáforo para 64-bit kernel 1048576 1048576 1048576
Máximo de semáforos por ID de semáforo 65535 65535 65535
Máximo de operações por chamada semop 1024 1024 1024
Máximo de entradas de desfazer por processo 1024 1024 1024
Tamanho em bytes de estrutura desfazer 8208 8208 8208
Valor máximo de semáforo 32767 32767 32767
Ajuste no valor máximo de saída 16384 16384 16384
As tabelas a seguir resumem os limites de fila de mensagens em mecanismos IPC.
Fila de Mensagens 7.1 7.2 7.3
Tamanho máximo de mensagem 4 MB 4 MB 4 MB
Máximo de bytes na fila 4 MB 4 MB 4 MB-2 GB
Número máximo de IDs de fila de mensagens para 32-bit kernel 131072 131072 131072
Número máximo de IDs de fila de mensagens para 64-bit kernel 1048576 1048576 1048576
Mensagens máximas por ID de fila 524288 524288 524288
As tabelas a seguir resumem os limites de memória compartilhada em mecanismos IPC.
Memória compartilhada 7.1 7.2 7.3
Tamanho máximo do segmento (32-bit processo) 2 GB 2 GB 2 GB
Tamanho máximo do segmento (processo de 64-bit) para 32-bit kernel N/D N/D N/D
Tamanho máximo do segmento (processo de 64-bit) para 64-bit kernel 32 TB 32 TB 32 TB
Tamanho mínimo do segmento 1 1 1
Número máximo de IDs de memória compartilhada (32-bit kernel) 131072 131072 131072
Número máximo de IDs de memória compartilhada (64-bit kernel) 1048576 1048576 1048576
Número máximo de segmentos por processo (32-bit processo) 11 11 11
Número máximo de segmentos por processo (64-bit processo) 268435456 268435456 268435456
Nota: Para 32-bit processos, o número máximo de segmentos por processo é limitado apenas pelo tamanho do espaço de endereço quando a capacidade estendida shmat é usada.

Limites de IPC no AIX® 7.3

O número máximo de bytes em uma fila de mensagens é controlado pelo parâmetro ajustável ipc_msgmnb do comando vmo .