저는 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의 경우 큰 차이가 없지만 확인해야 합니다.문서.