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

관련 정보