如何限制linux所有进程可使用的总内存?
下面的shell脚本可以实时的监控系统中各个进程的CPU和内存的占用情况,用于限制进程CPU占用率更加合理。
#!/bin/shPIDS=`top -bn 1 | grep "^ *" | awk ’{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}’`for PID in $PIDSdo 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系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、BufferCache(针对磁盘块的读写)和PageCache(针对文件inode的读写)进行缓存操作。
但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。
linux下查看内存的命令?
top命令能显示系统内存。目前常用的Linux下查看内容的专用工具是free命令。下面是对内存查看free命令输出内容的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。熟悉linux基础命令,可以看看《linux就该这么学》一书。
linux开机内存占多少?
你是指支持的内存上限么? 际上最大支持多大的内容跟操作系统的种类无关,而是跟操作系统是几位的还有CPU是几位的有关。
DOS是16位的,所以DOS支持的最大内存是64MB(2的16次方字节等于64MB)。 32位的Linux和32位的Windows(XP、Vista…)支持的最大内存是4GB,2的32次方字节=4GB。 64位的Linux和Windows支持的最大内存=16EB。
linux查看内存条数?
在linux系统中,查看内存条个数,及每根内存的大小,可以使用dmidecode命令。
如下:
#dmidecode | grep -a16 "memory device$"
输出结果:
memory device #存储设备。
array handle: 0x1000 #阵列处理。
error information handle: not provided #错误信息的处理:不提供。
total width:72 bits #总宽度: 72位。