我知道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
答案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,没有太大区别,但您需要检查文档。