linux下更改共享内存的最大值
System V
IPC
参数
名字
描述
合理取值
SHMMAX
最大共享内存段尺寸(字节)
最少若干兆(见文本)
SHMMIN
最小共享内存段尺寸(字节)
1
SHMALL
可用共享内存的总数量(字节或者页面)
如果是字节,就和 SHMMAX
一样;如果是页面,ceil(SHMMAX/PAGE_SIZE)
SHMSEG
每进程最大共享内存段数量
只需要 1 个段,不过缺省比这高得多。
SHMMNI
系统范围最大共享内存段数量
类似 SHMSEG
加上用于其他应用的空间
SEMMNI
信号灯标识符的最小数量(也就是说,套)
至少ceil(max_connections / 16)
SEMMNS
系统范围的最大信号灯数量
ceil(max_connections / 16) * 17
加
上用于其他应用的空间
SEMMSL
每套信号灯最小信号灯数量
至少 17
SEMMAP
信号灯映射里的记录数量
参阅文本
SEMVMX
信号灯的最大值
至少 1000 (缺省通常是32767,除非被迫,否则不要修改)
最重要的共享内存参数是 SHMMAX
, 以字节记的共享内存段可拥有的最大尺寸。
如果你收到来自shmget
的类似Invalid argument
这样的错误信息,那么很有可能是你超过限制了。
有些系统对系统里面共享内存的总数(SHMALL
)还有限制。
请注意这个数值必须足够大。 (注意:SHMALL
在很多系统上是用页面数,而不是字节数来计算的。)
系统里的最大信号灯数目是由SEMMNS
设置的,
因此这个值应该至少和 max_connections
设置一样大,并且每十六个联接还要另外加一个。 参数SEMMNI
决定系统里一次可以存在的信
号灯集的数目。 因此这个参数至少应该为 ceil(max_connections % 16)
。
降低允许的联接数目是一个临时的绕开失败的方法,这个启动失败通常被来自函数semget
的错误响应 No space left on device
搞得很让人迷惑。
有时候还可能有必要增大SEMMAP
,使之至少按照 SEMMNS
配置。这个参数定义信号灯资源映射的尺寸,
可用的每个连续的信号灯块在这个映射中存放一条记录。
每当一套信号灯被释放,那么它要么会加入到该映射中一条相连的已释放的块的入口中,要么注册成一条新的入口。如果映射填满了碎片,
那么被释放的信号灯就丢失了(除非重起)。因此时间长信号灯空间的碎片了会导致可用的信号灯比应该有的信号灯少。
相关文档:
内核简介
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的 ......
首先先学学编辑器,vim, emacs什么的都行。
然后学make file文件,只要知道一点就行,这样就可以准备编程序了。
然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。
如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基 ......
Ubuntu 9.10乱码 一、rtx 2007安装 为了脱离Windows的苦海,好不容易转到Ubuntu下来,但公司一直有几个软件只有windows能跑,现在基本我所有的功能都在linux下了.最麻烦的就这个RTX.上次有人留言问我怎么安装,现在我好不容易给他整稳定了,写个方法上来. 准备环境,我的是Ubuntu 9.04 ,wine-1.1.25,我用的RTX版本为2007 Beta0 ......
本文详细分析了Linux桌面操作系统的启动过程,涉及到BIOS系统、LILO 和GRUB引导装载程序,以及bootsect、setup、vmlinux等映像文件,并结合引导、启动原理和具体的代码实现机制由浅入深地进行了分析。
初学者刚接触Linux桌面系统会感觉系统启动速度较慢,那么,为什么它的启动速度慢呢?本文就桌面系 ......