반응형
리눅스 공유 메모리(Shared Memory) 정리
공유 메모리란?
- 리눅스에서 공유 메모리는 프로세스간에 데이터를 공유하고자 할 때 사용하는 메모리로 커널에 의해서 관리된다.
공유 메모리 특징
- 공유메모리는 최초로 공유 메모리를 만드는 프로세스에 의해서 만들어 집니다. 이렇게 만들어진 메모리는 커널이 관리해 줍니다.
- 한번 만들어진 공유 메모리 공간은 직접 삭제를 하거나 리눅스 시스템이 재부팅을 하거나 해야지만 없어집니다. 모든 프로세스가 더 이상 공유 메모리를 사용하지 않는다고 자동 삭제되는 일은 결코 없습니다.
공유 메모리 관련 서버 명령어
- ipcs : IPC를 위한 자원들의 리스트 출력
- ipcrm : IPC 자원 삭제
1. ipcs
# limits 정보 출력
ipcs -l
------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767
# 모든 ipc 자원 조회
ipcs -a
------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
2.ipcrm
# id가 shmid를 가진 shared memory 자원 삭제
ipcrm -m shmid
# id가 msgid인 message queue 자원 삭제
ipcrm -q msgid
# id가 semid인 semaphore 자원 삭제
ipcrm -s semid
Shared Memory 관련 에러
"cannot create locks cannot allocate shared memory for locks"
→ 프로세스 기동시 에러가 발생할 경우 ipcrm 명령어를 통해 shared memory 자원 삭제 or 서버 리부팅 작업 진행
[참고]
반응형
'Server > Linux' 카테고리의 다른 글
[Linux] Alpine Linux 정리 (0) | 2023.06.30 |
---|---|
[Linux] 리눅스 명령어 반복 실행 (0) | 2023.02.23 |
[Linux] you are not allowed to use this program(crontab) (0) | 2022.09.20 |
[Linux] 리눅스 패스워드 만료 기간 확인 및 만료일 설정 (0) | 2022.02.03 |
[Linux] 대상 서버의 방화벽 오픈 확인 (0) | 2022.02.03 |