`
chaoslawful
  • 浏览: 198398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SysV IPC 内核参数调整

阅读更多

SysV IPC 包括 Semaphore、Shared Memory 和 Message Queue 这 3 类进程间通信手段,虽然 POSIX.1-2001 实时接口标准规定了另一套提供相同手段但更一致化的接口(POSIX IPC),但 SysV IPC 仍然有相当数量的用户。

通过调整一些内核参数,可以更改 SysV IPC 对数据的固有限制,相关参数对应的控制文件可在 /proc/sys/kernel/ 目录下找到,也可以通过 sysctl 更改,现罗列如下:

 

控制文件路径 内核参数(通过 sysctl 更改时使用) 含义
/proc/sys/kernel/shmmax kernel.shmmax 共享内存中最大内存块尺寸(byte),默认为 33554432,即 32MB
/proc/sys/kernel/shmall kernel.shmall 整个系统中共享内存的最大尺寸,以页(4KB)为单位,默认为 2097152,即 2M 个页,共计 8GB
/proc/sys/kernel/shmmni kernel.shmmni 整个系统中共享内存块的最大数量,默认为 4096
/proc/sys/kernel/msgmax kernel.msgmax 消息队列中单条消息的最大尺寸(byte),默认为 8192
/proc/sys/kernel/msgmnb kernel.msgmnb 默认的每个消息队列的最大尺寸(byte),默认为 16384
/proc/sys/kernel/msgmni kernel.msgmni 整个系统中消息队列的最大数量,默认为 16
/proc/sys/kernel/sem kernel.sem 信号量的 4 个控制参数,从前向后分别是:
1. 单个信号量集合中容纳的最大信号量数量,默认为 250
2. 整个系统中信号量的最大数量,默认为 32000
3. 每个 semop 调用中允许的最大操作数量,默认为 32
4. 整个系统中信号量集合的最大数量,默认为 128

以上参数及含义都可以从 linux kernel 源码树的 SRCROOT/ipc/ 子目录下 SysV IPC 对应的实现文件中找到,其相关宏定义在 SRCROOT/include/linux/ 子目录下的相关头文件中。

 

分享到:
评论

相关推荐

    10-6Linux操作系统 - SYSV进程间通信.pptx

    在内核中,每种IPC资源都有一个全局变量,如`semid_ds`、`msgid_ds`和`shmid_ds`,它们描述了资源的状态和权限信息。`ipc_ids`结构包含一个`entries`数组,每个元素指向一个`kern_ipc_perm`结构,表示每个IPC资源的...

    操作系统 SYSV进程间通信PPT教案学习.pptx

    在SYSV(System V)操作系统中,提供了多种IPC方式,其中包括信号量(Semaphore)、消息队列(Message Queue)和共享内存(Shared Memory)。本教程将主要讨论SYSV IPC中的信号量。 信号量是一种特殊的同步机制,它...

    workerman 消息队列,基于Linux sysv 队列实现

    为解决这个问题,可以通过调整内核参数来增大sysv队列的大小。例如,可以修改`/etc/sysctl.conf`文件,增加以下行: ```bash kernel.msgmni = 新的msgmni值 # msgmni定义了系统中消息队列的最大数量 kernel.msgmax =...

    a_sysv_msgqueue.tgz

    System V消息队列允许进程将数据结构(通常为字符串)存储在内核管理的队列中,其他进程可以通过消息队列ID来读取或写入这些消息。在Linux中,可以使用`msgget`、`msgsnd`和`msgrcv`等系统调用来操作消息队列。 1. ...

    UNIX_SysV_R4.2.tar.gz_System V Release 4_UNIX_SysV_R4.2_system v

    源代码将揭示如何创建、终止和调度进程,以及如何实现进程间通信(IPC)。 4. 网络堆栈(network stack):System V R4.2加强了网络功能,包括TCP/IP协议栈的实现,这对于现代网络服务至关重要。 5. 库函数...

    ipcqueue:POSIX和SYS V消息队列针对Python的实现

    队列在内核中是持久的,除非关闭/取消链接队列或关闭系统。 与multiprocessing.Queue不同,同一队列可以根据其唯一的名称/键由不同的进程连接,而不必派生主进程。 如果在应用程序中使用信号,请小心,因为信号会...

    进程间通信

    Linux支持System V(SysV)提供的三种主要IPC资源,这些资源是由内核管理的: - **信号量**:允许进程之间进行同步。 - **消息队列**:提供进程间数据交换的能力。 - **共享内存**:允许进程共享同一段内存空间。 ...

    penguin:附加 posix(和一些特定于 linux 的)系统调用的 python 绑定

    解释 penguin 是一个包罗万象的存储库,用于包装未在 python 标准库中公开的 libc 函数。...penguin.sysv_ipc :旧的 System V IPC API pengiun.posix_ipc : 较新的 POSIX IPC API 作者 特拉维斯·J·帕克

    基于systemV的消息队列的多进程间CS通讯实现

    System V消息队列是UNIX/Linux系统中的一种进程间通信(IPC)方式,允许进程之间通过消息传递数据。在描述中提到,此实现是为了替代原先基于POSIX消息队列的方案,因为当前内核对该机制的支持不佳。 标签中的...

    Linux Kernel 3.11.pdf

    6. SYSV IPC消息队列扩展: 改进了消息队列的功能,允许应用程序请求低延迟网络,提升网络性能。 7. 压缩交换分区`zswap`: 这个特性增加了交换分区的压缩能力,有助于在内存资源紧张时提升系统性能。 【FreeBSD ...

    docker容器热迁移

    此外,CRIU还不支持一些特定的应用场景,例如带有调试器的进程、运行在不兼容模式下的任务、UNIX套接字、非TCP/UDP/UNIX/packet和netlink的套接字、 corked UDP套接字、没有IPC命名空间的SysV IPC内存段,以及图形...

    Linux系统编程第三章

    - **工作原理**:当一个进程创建管道时,内核会创建两个文件描述符:一个用于写入(写端),另一个用于读取(读端)。创建管道的进程可以通过写端发送数据,其他进程则可以通过读端接收这些数据。 - **示例**:在...

    RED HAT LINUX 6大全

    2.3.2 内核参数选项 8 2.3.3 安装程序 9 2.3.4 选择一种安装方法 9 2.3.5 光盘安装 10 2.4 硬件配置 14 2.4.1 选择鼠标 14 2.4.2 配置X Window系统 14 2.4.3 配置网络 14 2.4.4 设置时区 15 2.4.5 选择服务自动启动 ...

    我的APUE2读书笔记

    例如`nice`可以调整进程的优先级。 #### 第九章 进程关系 **1. 进程组(process group)** 一组具有相同属性的进程组成一个进程组。 **2. 会话(session)** 一个会话由一个初始化进程和一个或多个进程组组成。 **3....

    APUE读书笔记《UNIX环境高级编程第二版》

    - **系统调用**是应用程序与操作系统交互的主要接口,由内核提供服务。 - **库函数**是编译器或外部库提供的函数,方便程序编写。 **3. 文件和目录** - Unix采用树形结构组织文件系统。 - 每个文件都有唯一的inode...

Global site tag (gtag.js) - Google Analytics