Linux共享内存区参数设置
2014-02-22 21:51
357 查看
前言
昨天被师姐问了一个关于共享内存区大小设置的问题,之前一点没了解过,赶紧各种科普,科普到一篇好文章《Linux共享内存使用常见陷阱与分析》。认真看完后,之前使用共享内存时遇到的很多问题都了然了,很有收获,在此记录。Linux共享内存设置
先通过几条命令查看下Linux中共享内存的相关参数默认值。命令行:
ipcs -lm
这里涉及三个主要的与共享内存相关的参数:SHAMAX、SHAMNI、SHMALL。
命令行查看:
cat /proc/sys/kernel/shmmax cat /proc/sys/kernel/shmmni cat /proc/sys/kernel/shmall
解释下三个参数的含义:
SHMMAX:共享内存段的最大尺寸(以字节为单位)。
在Linux中的默认值是32M。如果程序中创建的共享内存超过这个默认值,程序使用标准错误perror会输出信息:“unable to attach to shared memory segment”。以设置大小为2G为例,设置方式:
> echo "2147483648" > /proc/sys/kernel/shmmax也可以使用sysctl命令来更改:
sysctl -w kernel.shmmax=2147483648最后,通过将该内核参数插入到 /etc/sysctl.conf 启动文件中,可以使这种更改永久有效:
sysctl -w kernel.shmmax=2147483648
SHMMNI:系统范围内共享内存段的最大数量。该参数Linux中默认值为4096,一般来说已足够,不需改变。
修改方式:
echo “kernel.shmmni=4096″ >> /etc/sysctl.conf
SHMALL:系统一次可以使用的共享内存总量(以页为单位)。该参数Linux中默认值为2097152。
修改方式:
sysctl -w kernel.shmall=2097152 echo “kernel.shmall=2097152″ >> /etc/sysctl.conf
总结
下篇总结吧。。相关文章推荐
- Oracle安装-Linux内核参数-共享内存信号量设置
- Oracle安装-Linux内核参数-共享内存信号量设置
- Linux内核参数-共享内存信号量semaphore设置
- Linux内核参数-共享内存信号量设置
- 如何设置LINUX的共享内存
- 如何设置LINUX的共享内存
- 设置linux 共享内存
- 如何设置LINUX的共享内存
- Linux 共享内存限制的查看与设置
- linux性能分析及调优__cpu 性能瓶颈调优可调性能参数 、内存性能瓶颈可调性能参数(操作系统设置swap的目的、在写程序时、如何使自己的内存不被换出swap,常驻物理内存)、磁盘I/O可调性能参
- Linux下设置swappiness参数来配置内存使用到多少才开始使用swap分区(转)
- Linux下内存共享的一个实例(设置共享内存,一个程序写,一个程序读)
- 如何设置LINUX的共享内存
- Linux下设置export JAVA_OPTS选项进行tomcat JVM内存设置【 linux下tomcat的参数JAVA_OPTS必须设在catalina.sh中cygwin=false前】
- Linux进程间通信--shmget()共享内存(一)
- <转>Linux环境进程间通信(五): 共享内存(下)
- 安装ORACLE时在Linux上设置内核参数的含义
- Linux 下查看修改共享内存的方法
- linux共享内存的查看与删除
- 内存不足导致的java.lang.OutOfMemoryError: java heap space引出java工程启动参数设置