ulimit은 soft limit과 hard limit 두가지가 있습니다..
# ullimit -aS
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 3145728
stack(kbytes) 262144
memory(kbytes) unlimited
coredump(blocks) 4194303
nofiles(descriptors) 4096
# ulimit -aH
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 3145728
stack(kbytes) 262144
memory(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 15000
soft limit은 hard limit과 kernel parameter가 정한 범위를 넘을 수 없지만 hard limit은 커널 parameter의 제한을 넘을 수 있습니다(11.11만 가능. 11.23에서는 hard limit도 maxdsiz보다 클 수 없음). 그러나 process의 data size은 여전히 maxdsiz의 영향을 받기 때문에 hard limit이 maxdsiz보다 크게 하는 것은 의미가 없습니다.
그리고 32비트 application의 data size는 ulimit과 maxdsiz에 영향 외에 구조적인 한계가 있습니다. 32비트 address 공간은 4개의 quadrant로 나뉘어져 있습니다.
첫번째 quadrant: text
두번째 quadrant : data
세번째와 네번째 quadrant : shared memory및 shared library
기본적으로 data는 두번재 quardrant만 사용하기 때문에 1GB 밖에 사용할 수 없습니다. link 시 "-N" 옵션을 추가하면 기본인 share magic에서 exec magic로 바뀌면서 첫번째 quadrant도 data영역으로 사용해서 약 2GB까지 사용할 수 있습니다. 그래서 아무리 maxdsiz을 늘리셔도 data은 최대 size는 2GB밖에 되지 않습니다.
# ullimit -aS
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 3145728
stack(kbytes) 262144
memory(kbytes) unlimited
coredump(blocks) 4194303
nofiles(descriptors) 4096
# ulimit -aH
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 3145728
stack(kbytes) 262144
memory(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 15000
soft limit은 hard limit과 kernel parameter가 정한 범위를 넘을 수 없지만 hard limit은 커널 parameter의 제한을 넘을 수 있습니다(11.11만 가능. 11.23에서는 hard limit도 maxdsiz보다 클 수 없음). 그러나 process의 data size은 여전히 maxdsiz의 영향을 받기 때문에 hard limit이 maxdsiz보다 크게 하는 것은 의미가 없습니다.
그리고 32비트 application의 data size는 ulimit과 maxdsiz에 영향 외에 구조적인 한계가 있습니다. 32비트 address 공간은 4개의 quadrant로 나뉘어져 있습니다.
첫번째 quadrant: text
두번째 quadrant : data
세번째와 네번째 quadrant : shared memory및 shared library
기본적으로 data는 두번재 quardrant만 사용하기 때문에 1GB 밖에 사용할 수 없습니다. link 시 "-N" 옵션을 추가하면 기본인 share magic에서 exec magic로 바뀌면서 첫번째 quadrant도 data영역으로 사용해서 약 2GB까지 사용할 수 있습니다. 그래서 아무리 maxdsiz을 늘리셔도 data은 최대 size는 2GB밖에 되지 않습니다.