[질문] 큰 Data 를 공유하고 싶습니다.

kuma의 이미지

Linux 나 Unix 계열에서 Queue 로 Data 를 보내거나 공유메모리로 Data 를 공유하고자 할때 항상 Data size 의 문제로 프로세서간 통신에 대한 해답을 찾지 못하고 있습니다.

비건한 예로 Open-VMS 나 Windows-NT 계열에서는 200MByte 를 공유메모리로 잡아도 잘 잡히거든요. 실제 테스트는 못해봤지만 더 큰 Data 의 공유도 되는걸로 알고 있는데...., 혹 이런 큰덩치(?) 의 Data 공유에 대한 문제를 만나신적은 없는지?...... 그리고 어떻게 해결을 하셨는지....? 다른분들의 의견을 듣고 싶습니다.

꼬랑지 : 가끔은 파일로 해결을 해버릴까 하는 생각도 들지만 정석이라고 볼 수가 없어 포기 하고 있습니다. ㅡㅜ

dreampia의 이미지

solaris라면

/etc/system 파일에 ( 없을 경우 생성.. )

set shmsys:shminfo_shmmax=20147483647
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=1024
set shmsys:shminfo_shmseg=1024

와 같이 하신 후 reboot하면 됩니다.

solaris 2.5.1 이상일 경우 4294967295(40G)까지 가능합니다.

>/dev/null 2>&1

maximus의 이미지

윈도우즈 계열에서는 공유메모리도 화일입니다.. 그래서 하드디스크 남은 잔량까지 거의 생성이 가능할겁니다..

Unix 계열에서는 어떤지 잘 모르겠습니다.. 아시는분 리플좀..

그리고 공유메모리 사이즈를 수정하실려면 커널을 수정해줘야 하는걸로 알고 이씁니다..

그게 아니라면 쉘에서
echo "671088640" >/proc/sys/kernel/shmmax 이런식으로 할수 있습니다. <<--- 640매가

실제 가능한지는 잘모르겠습니다만..

그렇게 큰 데이타 같으면 굳이 공유 메모리 보단
화일이 좀더 낮겠단 생각도 드는군요..

=================================
:: how about a cup of tea ? ::
=================================

무한포옹의 이미지

커널 수정하는 건 옛날 얘기죠.

sysctl 혹는 cat /proc/...

으로 바로 공유메모리 제한 조정이 가능합니다.

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===