当前位置:首页 > 内存 > 正文

Linux7需要设置共享内存吗(Linux 共享内存)

  • 内存
  • 2024-06-14 08:51:23
  • 8337

一、linux内核如何勾选共享内存所谓的共享内存允许多个进程访问同一内存空间,这是可用的最快的IPC形式。它旨在降低其他通信机制的运行效率。它经常与信号量等其他通信机制结合使用,以实现进程之间的同步和互斥。其他进程可以将相同的共享内存段“附加”到它们自己的地址空间。所有进程都可以访问共享内存中的地址。如果进程将数据写入此共享内存,则访问同一共享内存的其他进程将立即看到更改。使用共享内存可以显着减少大规模数据处理的内存消耗。然而,使用共享内存时存在很多陷阱。如果不小心,这很容易导致程序崩溃。
1.共享内存大小超出限制?
在Linux服务器上,共享内存的总大小是有限的。该大小由SHMMAX参数(以字节为单位)确定。您可以通过运行以下命令来确定SHMMAX值:
​#cat/proc/sys/kernel/shmmax
如果计算机上创建的共享内存的总大小超过此限制,在程序中使用标准错误可能会导致以下情况消息出现。出现消息:
无法连接到共享内存
解决方案:
1.将SHMMAX
设置为默认值SHMMAX-32MB。通常,使用以下方法之一将SHMMAX设置设置为2GB:
通过直接编辑/proc文件系统,您可以更改默认的SHMMAX设置,而无需重新启动计算机。我使用的是以下方法:启动文件/>etc/:
echo"2147483648">/proc/sys/kernel/shmmax
也可以使用命令sysctl更改SHMMAX值:=2147483648
最后,通过将此内核参数插入到/etc/启动文件中,可以进行此更改:permanent:echo"=2147483648">>/etc/
 2.安装SHMMNI