1)공유 메모리?
-리눅스 시스템은 공유메모리(Shared Memory)라는 것을 제공, 프로세스간 서로 메모리를 공유하는 방식
-각 프로세스는 자신만의 메로리를 필요로 함, 하지만 프로세스간에 자료를 공유할 때는 공유 메모리를 사용
(공유 메모리는 커널에서 관리, 재부팅하면 사라짐)
2)공유 메모리 설정하기
공유 메모리 설정은 크게 2가지로 나눠짐
shmmax = 단일 프로세스가 공유 메모리를 호출하기 위한 최대 값
shmall = 모든 프로세스가 사용할 수 있는 총 공유 메모리 값
이 두가지를 설정하는 법은
echo (원하는 용량의 bytes) > /proc/sys/kernel/shmmax
echo (원하는 용량의 kbytes/4) > /proc/sys/kernel/shmall
shmmax는 bytes 단위로 값을 지정할 수 있고
shmall은 pages 단위로 값을 지정하기때문에 입력값은 서로 다른 단위를 사용
ex)
shmall으로 16GB를 설정 하는 수식은 echo 4294967296 > /proc/sys/kernel/shmall이다
그 이유는 (4294967296(4GB에 해당하는 kbytes값) *4096(페이지단위)/1024)의 수식을 가지기 때문
페이지단위는 아래 명령어를 통해 알 수 있음
[root@Linux_test ~]#getconf PAGESIZE
4096
리눅스 공유 메모리 설정 해보기
Q.단일 프로세스 할당 최대 공유 메모리 8GB 설정
총 공유 메모리 16GB로 설정
[root@Linux_test ~]#echo 8589934592 > /proc/sys/kernel/shmmax
[root@Linux_test ~]#echo 4194304 > /proc/sys/kernel/shmall
[root@Linux_test ~]#ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 8388608 (8GB)
max total shared memory (kbytes) = 16777216 (16GB)
min seg size (bytes) = 1
단일 프로세스 공유 메모리 8GB값을 설정하기 위해서
8GB에 해당하는 8589934592byte를 /proc/sys/kernel/shmmax에 입력했고
최대 공유 메모리 16GB 값을 설정하기 위해서
4GB에 해당하는 4194304KB를 /Proc/sys/kernel/shmall에 입력했다.
결과 출력을 위해 ipcs -l을 사용
'OS > Linux' 카테고리의 다른 글
리눅스 메모리 사용률 확인하는 법 (2) | 2021.02.23 |
---|---|
스크립트를 활용한 로그 관리 (0) | 2021.02.18 |
서버 생성 후 로그인 계정 설정(루트 로그인 허용, 루트 스위칭 계정 설정 ,패스워드 로그인 허용) (0) | 2021.01.29 |
Zabbix를 이용한 모니터링 시스템 구축-2(클라이언트) (0) | 2020.12.30 |
Zabbix를 이용한 모니터링 시스템 구축-1(서버) (2) | 2020.12.28 |
댓글