热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux内核参数:对IPC的限制参数

共享内存: 可以通过ipcs -lm命令查看目前系统共享内存的参数限制: # ipcs -lm —— Shared Memory Limits ——– m

共享内存:

可以通过ipcs -lm命令查看目前系统共享内存的参数限制:

# ipcs -lm

—— Shared Memory Limits ——–


max number of segments = 4096


max seg size (kbytes) = 1048576


max total shared memory (pages) = 2097152


min seg size (bytes) = 1

这里涉及到3个于共享内存相关的参数:SHMMAX,SHMMNI,SHMALL


SHMMAX

含义:单个共享内存段最大字节数


设置:比SGA略大


查看:cat /proc/sys/kernel/shmmax


$ cat /proc/sys/kernel/shmmax


1073741824

修改:


sysctl -w kernel.shmmax=1073741824


echo “kernel.shmmax=1073741824″ >> /etc/sysctl.conf


SHMMNI

含义:共享内存段最大个数


设置:至少4096


查看:cat /proc/sys/kernel/shmmni


# cat /proc/sys/kernel/shmmni


4096

修改:


# sysctl -w kernel.shmmni=4096


# echo “kernel.shmmni=4096″ >> /etc/sysctl.conf


SHMALL

含义:系统中共享内存页总数


设置:至少ceil(shmmax/PAGE_SIZE);ORACLE DOC 默认值:2097152*4096=8GB


查看:cat /proc/sys/kernel/shmall


$ getconf PAGE_SIZE


4096

# cat /proc/sys/kernel/shmall


2097152

修改:


# sysctl -w kernel.shmall=2097152


# echo “kernel.shmall=2097152″ >> /etc/sysctl.conf


消息队列


为进程提供了一种异步传递消息的方法。在使用 msgget()建立了一条消息队




列之后,发送进程和接收进程就可以通过这条消息队列交换消息。发送进程将消息发送到




指定的消息队列,而接收者试图从指定的消息队列中获取消息。如果该队列中没有消息的




话,则接收者根据自己是否要等待的意愿而阻塞或返回某个标志。



名    称 描    述 默 认 值 最 大 值 




msgmni 最大消息队列数 16 2GB 




msgmax 最大消息长度(字节数) 8192 2GB 




msgmnb 消息队列中的最大字节数 16384 2GB


 


msgmni 定义了系统范围内的消息队列上限。与信号量一样,消息队列也拥有一个相关




的标识符。在系统初始化阶段里,内核创建一个指向消息队列标识符结构的指针数组。该




数组的项数由 msgmni确定。对于每个消息队列,Linux 内核为标识符分配44B,为消息队




列数据结构分配 96B。为了获得更多的消息队列资源,可以动态增加 msgmni 取值。和信




号量一样,消息队列标识符的最大数目也受限于IPCMNI。msgmni的默认上限为 16B,这




可能不足以保证一些大型数据库应用平滑地运行。如果在系统上要运行数据库应用的话,




推荐默认上限值是 128B。



msgmax 限制进程可以发送的消息长度。该参数由 Msgsnd()函数加以应用。如果待发




送消息的长度超过该值,则返回一个错误。该参数可以在运行时调整


 


msgmnb 确定一个消息队列的容量。该参数的取值存储在消息队列标识符结构的某个




域中,用于确定是否存在着对新消息进行排队的空间。msgmnb 值可以动态修改,默认为




16384。修改其取值会影响到所有新的消息队列的容量。用户可以通过 Msgctl()系统调用来




增加现有消息队列的容量


Linux内核参数:对IPC的限制参数




推荐阅读
  • 1、概念共享内存:共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同malloc()函数向不同进程返回了指向同一个 ... [详细]
  • 开发笔记:Xunit测试使用个人小结
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Xunit测试使用个人小结相关的知识,希望对你有一定的参考价值。因工作中用到xunit测试,故总结下用法,以供个人参考使 ... [详细]
  • MQ的使用
    安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
  • 一个不错的JDBC连接池教程(带具体例子)
    1.前言数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游 ... [详细]
  • 我有二进制格式的数据(十六进制:803bc8870a89),我需要将其转换为字符串,以便通过Jackcess在MSAccess数据库中保存二进制数据.我知道,我不认为在Java中使用 ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
  • 使用RSACryptoServiceProvider进行公钥加密我已经在CodeProject上发表了一篇文章,解释了如何使用RSA提供程序进行加密和解密:RSA私钥加密虽然200 ... [详细]
  • DDOSDDOS的中文名叫分布式拒绝服务***,俗称洪水***DDoS***概念DoS的***方式有很多种,最基本的DoS***就是利用合理的服务请求来 ... [详细]
  • oracle text db2,从Oracle 到DB2(一)
    在实际的软件项目的开发过程中,特别是在企业的应用系统集成(EAI)项目中广大开发人员经常遇到不同关系型数据库之间的数据移植问题。笔者根据自己在工作中的不同数据库数据移 ... [详细]
  • 1.研究背景及其意义互联网从发展到至今,已经深入到人们的日常生活中,并且不论老人还是小孩,多少都会接触到互联网。在这个越来越信息化的社会& ... [详细]
  • handler机制_Handler机制与原理
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Handler机制与原理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 数据库用久了难免会出现没有回收的空间,如果空间太大可使用以下方法进行回收。查询用个表所占用的空间:SELECTtablespace_name,100*(sum_max-sum_alloc+nvl(su ... [详细]
  • 从分布式数据库选型的第一件事谈起
    本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ... [详细]
  • 以下数据来源于TRDIR,TRDIRT,有一些对应系统的事务,有具体的T-CODE.以下我会标注一些我个人认为会常用到的.程序功能描述RSORA000O ... [详细]
  • Mybatis源码解析——Executor
    ExecutorExecutor提供了数据库操作的一些方法以及Mybatis的缓存和事物管理功能。模板方法模式要实现某个方法,必须经过很多算法,但这些算法的顺序是固定的,将算法的运 ... [详细]
author-avatar
王怡君3018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有