linux内存限制
Ⅰ linux系统最大支持多少的内存
一般的 Linux 最大支持 64G ,是在 x86 架构上。
如果你在大型服务器上,好像最高可以上到 4T 以上,但似乎和硬件有关。
支持的大小,在内核里面有设置 1G 4G 64G 三个级别。
如果打开了 64G 内存,但跑在小于 4G 的机器上,听说性能有损失。(貌似性能损失还很大……)
具体的支持我只知道看内核配置,一般在 /boot 里面有个文件名里含有版本号的 config 文件,这个就是配置。最好还是看 /proc/config (或者压缩过的 /proc/config.gz ),这个是当前运行内核的配置,但并不一定有。(看设置了)
CONFIG_HIGHMEM4G 这个为 Y 是支持 4G 版的
CONFIG_HIGHMEM64G 这个为 Y 是支持 64G 的
两个都没有,就是 1G 版的(貌似现在没人还在桌面和服务器上用 1G 版的了)
Ⅱ 如何限制linux所有进程可使用的总内存
下面的shell脚本可以实时的监控系统中各个进程的CPU和内存的占用情况,用于限制进程CPU占用 率更加合理。
#!/bin/sh
PIDS=`top-bn1|grep"^*[1-9]"|awk’{if($9>50||$10>25&&id-u$2>500)print$1}’`
forPIDin$PIDS
do
renice+10$PID
echo"renice+10$PID"
done
能够将这个脚本放到cron中运行,比如每分钟检查一次,只需以root身份添加crontab项:
#crontab -e
* * * * * limit.sh
以后每个一分钟就会检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低,被调度的机会减少,同时会向root发邮件提示该进程被调整过。
但是,限制内存使用最好还是用PAM,RedHat能够在/etc/security/limits.conf中配置。
Ⅲ 在linux怎么限制一个进程运行内存大小
我不知道如何查看。但记得Linux(32位)中每个进程独享4GB的进程空间,需要注意的是这4G指的是虚拟内存,而非物理内存。可以查阅一下Linux虚拟内存机制相关资料。
要定制的话难度大啊!内核文件里用进程描述符(thread_info)表示一个进程,它是一个结构体,里面有个关于进程内存分配的字段(addr_limit)。具体自己研究研究吧!
如果只是对某个进程分配空间的话就简单多了。假如你要为当前进程设置2M的内存上限,可以通过current->addr_limit=2048实现。
