Skip to content

Shared memory

공유 메모리(Shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리이다. 과다한 복사를 피하거나 해당 프로그램 간 통신을 위해 고안되었다. 환경에 따라 프로그램은 하나의 프로세서에서나 여러 개의 프로세서에서 실행할 수 있다. (예를 들어 여러 개의 스레드 간에) 하나의 프로그램 안에서 통신을 위해 메모리를 사용하는 일은 일반적으로 공유 메모리로 부르지 않는다.

Categories

Libraries

커널 설정

sysctl로 최대 크기를 설정할 수 있다.

/sbin/sysctl -w kernel.shmmax=256000000

다음 명령으로 확인:

/sbin/sysctl -a

관련 변수 및 상태 조회

최대 공유 메모리 세그먼트 크기 (SHMMAX)
/proc/sys/kernel/shmmax 파일에 설정된 값입니다.
이 값은 단일 공유 메모리 세그먼트의 최대 크기를 바이트 단위로 지정합니다.
전체 시스템에서 사용할 수 있는 공유 메모리 총 크기 (SHMALL)
/proc/sys/kernel/shmall 파일에 설정된 값입니다.
이 값은 시스템 전체에서 사용할 수 있는 공유 메모리의 총 크기를 페이지 수 단위로 지정합니다. (1 페이지는 보통 4096 바이트)
최대 공유 메모리 세그먼트 개수 (SHMMNI)
/proc/sys/kernel/shmmni 파일에 설정된 값입니다.
이 값은 시스템에서 사용할 수 있는 최대 공유 메모리 세그먼트의 수를 지정합니다.

위 설정을 변경한 후에는 해당 설정이 시스템 재부팅 후에도 유지되도록 하기 위해 /etc/sysctl.conf 파일에 다음과 같은 내용을 추가할 수 있습니다:

kernel.shmmax = 2147483648
kernel.shmall = 524288
kernel.shmmni = 4096

그런 다음 sysctl -p 명령을 실행하여 설정을 적용합니다.

추가로, 현재 시스템에서 사용 중인 공유 메모리 세그먼트를 확인하려면 ipcs 명령어를 사용할 수 있습니다. 이 명령어는 현재 시스템의 공유 메모리 세그먼트, 세마포어 배열 및 메시지 큐의 상태를 보여줍니다:

이 명령어는 현재 시스템에서 사용 중인 모든 공유 메모리 세그먼트의 목록을 출력합니다. 각 세그먼트의 키, ID, 소유자, 크기 및 기타 정보를 볼 수 있습니다.

또한, /proc/meminfo 파일을 통해 전체 시스템 메모리 정보와 함께 현재 사용 중인 공유 메모리 양을 확인할 수도 있습니다.

See also

Favorite site

Windows