Solaris、HP-UX 和 AIX 中用于共享内存和信号量的 IPCS 命令

Solaris、HP-UX 和 AIX 中用于共享内存和信号量的 IPCS 命令

我知道linux系统的ipcs命令,但现在我正在寻找solaris,hp-ux和aix系统的ipcs命令,我在网站上搜索了很多,几乎每个人都建议ipcs -am,ipcs -as或ipcs -a。

当我在 Linux 中执行 ipcs 命令时,我得到以下输出,

cmd > ipcs -lm

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 32768
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

cmd > ipcs -ls

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

但是当我在 aix、solaris 和 hp-ux 中执行此命令时,我从所有这些系统中获得了几乎以下输出:

cmd > ipcs -am

IPC status from /dev/mem as of Wed Aug 12 21:33:15 IST 2015
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NATTCH     SEGSZ  CPID  LPID   ATIME    DTIME    CTIME
Shared Memory:
m   1048576 0xffffffff D-rw------- pconsole   system pconsole   system      1 536870912 5177546 5177546 20:53:54 no-entry 20:53:54
m   1048577 0x78000012 --rw-rw-rw-     root   system     root   system      1 268435456 5112058 3801148 20:53:52 21:30:20 20:53:52
m   1048578 0x7800000c --rw-rw-rw-     root   system     root   system      1  16777216 5112058 3801148 20:53:52 21:30:20 20:53:52
m   1048579 0x61000010 --rw------- pconsole   system pconsole   system      1  10485760 5177546 5177546 20:53:54 no-entry 20:53:54
m 629145605 0xffffffff D-rw-------    kalai  egurkha    kalai  egurkha      1 536870912 9175052 9961658 22:36:08 21:33:06 22:36:08
m  22020103 0x0d02337e --rw-rw----     root   system     root   system      0      1440 7930086 7864444 20:57:46  6:10:14 22:19:05

cmd > ipcs -as

IPC status from /dev/mem as of Wed Aug 12 21:34:01 IST 2015
T        ID     KEY        MODE       OWNER    GROUP  CREATOR   CGROUP NSEMS   OTIME    CTIME
Semaphores:
s         1 0x62023470 --ra-r--r--     root   system     root   system     1 20:53:24 20:53:24
s   3145732 0x0100b38a --ra-ra-ra-     root   system     root   system     2 20:53:52 20:53:52
s   3145733 0xffffffff --ra-------     root   system     root   system     2 no-entry 20:53:52
s         8 0x8100000e --ra------- pconsole   system pconsole   system     4 22:58:27 20:53:54
s         9 0xa1003002 --ra-ra-ra- pconsole   system pconsole   system     2 21:29:28 20:53:56
s        10 0x010232b8 --ra-------     root   system     root   system     1  2:03:46 21:07:18
s        11 0x0101c6e8 --ra-ra-ra-     root    staff     root    staff     1 21:28:42 21:07:44

问题是我无法找到以下数据的值:

------ Shared Memory Limits --------
max number of segments = ?
max seg size (kbytes) = ?
max total shared memory (kbytes) = ?
min seg size (bytes) = ?

------ Semaphore Limits --------
max number of arrays = ?
max semaphores per array = ?
max semaphores system wide = ?
max ops per semop call = ?
semaphore max value = ?

请告诉我如何查找上述数据的值,或者您是否有任何其他解决方案可以满足我的要求。

提前致谢

答案1

我只能与 AIX 对话。

AIX 没有能够以编程方式显示限制的命令。

对于 AIX,最接近的方法是使用这张桌子并适当编码。

答案2

对于 Solaris 10 和 Solaris 11,您可以使用 prctl 命令。但是你必须请阅读手册,因为使用区域和/或项目时这非常复杂。

以当前运行的全局区域的 Solaris 11 为例。

prctl $$
project.max-shm-memory
        privileged      40.3GB      -   deny                                 -
        system          16.0EB    max   deny                                 -
project.max-shm-ids
        privileged        128       -   deny                                 -
        system          16.8M     max   deny                                 -
--
zone.max-shm-memory
        usage               0B
        system          16.0EB    max   deny                                 -
zone.max-shm-ids
        usage               0
        system          16.8M     max   deny   

                          -

上面的内容告诉我,我的全局区域对共享内存或信号量 ID 没有任何限制。

# prctl $$| ggrep -A2 shm
project.max-shm-memory
        privileged      1.96GB      -   deny                                 -
        system          16.0EB    max   deny                                 -
project.max-shm-ids
        privileged        128       -   deny                                 -
        system          16.8M     max   deny                                 -
--
zone.max-shm-memory
        usage           1.89GB
        privileged      6.40GB      -   deny                                 -
--
zone.max-shm-ids
        usage               3
        system          16.8M     max   deny      

                       -

第二个输出告诉我,我的非全局区域的共享内存限制为 6.4GB,而已使用的内存接近 2GB。有关资源控制的列表,您可以查看它们这里。对于 Solaris 10,没有太大区别,但您需要检查文档

相关内容