部分参数获取方法
PAGE_SIZE:getconf PAGE_SIZE 单位byte
THREAD_SIZE:ulimit -s
额定具体计算如下
max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8
mempages计算
mempages = 物理内存大小/PAGE_SIZE
例如:32G内存
mempages = 32174 * 1024 * 1024/4*1024 = 8236544
max_threads = 8236544/(8 1024)/(4 1024)/8 = 514784
因为为了保证每个用户进程总数不至于超过一半内存fork_init()指定:
init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2
init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2
即物理额定线程数为514784/2=257392
配置 Linux 内核参数(2种方法),修改后不用重启动更新: /sbin/sysctl -p第一种:打开/etc/sysctl.conf 复制如下内容kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default=262144net.core.wmem_default=262144net.core.rmem_max=262144net.core.wmem_max=262144第二种:打开终端cat >>/etc/sysctl.conf< kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default=262144net.core.wmem_default=262144net.core.rmem_max=262144net.core.wmem_max=262144EOF这里,对每个参数值做个简要的解释和说明。 (1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。 (2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。 (3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。 (4)sem:该参数表示设置的信号量。 (5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。 修改好内核以后,执行下面的命令使新的配置生效。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)