A memória compartilhada nem sempre é um recurso protegido. Como tal, muitos usuários podem alocar memória compartilhada. Também não é retornado automaticamente ao pool de memória quando o processo alocado morre. Isso pode resultar em alocações de memória compartilhada que foram alocadas, mas não usadas. Isso resulta em um vazamento de memória que pode não ser óbvio.
Mantendo baixos os limites de memória compartilhada, a maioria dos processos que usam memória compartilhada (em pequenas quantidades) podem ser executados. No entanto, o dano potencial é limitado. Os únicos sistemas que tenho usos que exigem grandes quantidades de memória compartilhada são os servidores de banco de dados. Estes geralmente são administrados por administradores de sistema que estão cientes dos requisitos. Caso contrário, o DBA geralmente está ciente do requisito e pode solicitar alterações de configuração apropriadas. As instruções de instalação do banco de dados geralmente especificam como calcular e definir os limites apropriados.
Eu tive bancos de dados mortos e deixei grandes quantidades de memória compartilhada alocadas, mas não utilizadas. Isso criou problemas para os usuários do sistema e impediu o reinício do banco de dados. Felizmente, há ferramentas que permitiram que a memória fosse localizada e liberada.