Freebsd 6下修改单进程最大内存参数
Linux 2007/04/30 15:32 原来在32位的freebsd 4下,单进程最大使用的内存数是: 512M 左右.通过修改kern.maxdsiz可以改变这个参数。
升级成 64位freebsd 6 os以后,我们通过ulimit -a命令查看系统设置:
-bash-2.05b$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) 33554432
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 29491
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 524288
cpu time (seconds, -t) unlimited
max user processes (-u) 3686
virtual memory (kbytes, -v) unlimited
发现 data seg size 已经支持到33G了,和ulimited几乎没差别了。可是运行一段时间後,发现还是存在进程莫名其妙的消失的情况。仔细一查才知道这个只能确保64位程序内存使用的情况,如果32位的程序在上面运行,需要修改2个参数才能确保内存的使用 。通过sysctl -a |grep maxdsiz可以发现:
compat.ia32.maxdsiz: 1700000000
compat.linux32.maxdsiz: 1700000000
默认好像也是512M,上面是我调整以后的,调到1.7G了。呵呵。修改的办法是把这些放到/etc/sysctl.conf.local里面或者直接用sysctl命令来设置这2个参数。
升级成 64位freebsd 6 os以后,我们通过ulimit -a命令查看系统设置:
-bash-2.05b$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) 33554432
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 29491
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 524288
cpu time (seconds, -t) unlimited
max user processes (-u) 3686
virtual memory (kbytes, -v) unlimited
发现 data seg size 已经支持到33G了,和ulimited几乎没差别了。可是运行一段时间後,发现还是存在进程莫名其妙的消失的情况。仔细一查才知道这个只能确保64位程序内存使用的情况,如果32位的程序在上面运行,需要修改2个参数才能确保内存的使用 。通过sysctl -a |grep maxdsiz可以发现:
compat.ia32.maxdsiz: 1700000000
compat.linux32.maxdsiz: 1700000000
默认好像也是512M,上面是我调整以后的,调到1.7G了。呵呵。修改的办法是把这些放到/etc/sysctl.conf.local里面或者直接用sysctl命令来设置这2个参数。

