如何限制Linux内存的使用

如何限制Linux内存的使用,第1张

swap是一块磁盘空间或者一个本地文件/proc/sys/vm/swappiness 可以设置服务器使用 swap 的积极程度。取值范围为0-100,值越大,越积极使用swap,更倾向于回收匿名页值越小,越消极使用swap,更倾向于回收文件页。 即使swap设置为0,当剩余内存+文件页小于页高阈值( pages_high )的时候,也会发生swap Linux有专门的内核线程 kswapd0 定期回收内存,为了衡量内存的使用情况, kswapd0 定义了三个内存阈值:页最小阈值 pages_min 、页低阈值 pages_low 和页高阈值 pages_high ,剩余内存使用 pages_free 表示。kswapd0 定期扫描内存的使用情况,并根据剩余内存和这三个阈值的关系进行内存回收 *** 作。pages_free <pages_min :进程可用内存耗尽,只有内核才可以分配内存pages_min <pages_free <pages_low :内存压力较大, kswapd0 会执行内存回收,直到剩余内存大于高阈值为止pages_low <pages_free <pages_high :内存有一定压力,但还可以满足新内存请求pages_free >pages_high :剩余内存较多,没有内存压力。 这些阈值可以通过内核选项来 proc/sys/vm/min_free_kbytes 间接设置。 min_free_kbytes 设置了页最小阈值( pages_min )。 pages_low=pages_min*5/4 , pages_high=pages_min*3/2 /etc/security/limits.conf通过这个配置文件可以对每个登录的会话进行限制,这种限制不是全局的,也不是永久的,只在会话期间起作用。 通常,对单个用户的限制优先级高于对用户组的限制 可以使用以下方式限制内存使用 语法<domain><type><item><value> 详见 limits.conf(5) - Linux man page /proc/sys/vm/overcommit_memory 控制内核使用虚拟内存的模式,可以设置为以下值

下面的shell脚本可以实时的监控系统中各个进程的CPU和内存的占用情况,用于限制进程CPU占用 率更加合理。

#!/bin/sh

PIDS=`top -bn 1 | grep "^ *[1-9]" | awk ’{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}’`

for PID in $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系统中,设置内存频率需要在BIOS或UEFI固件中进行。因为内存频率是硬件层面的设置,Linux系统本身并不提供直接设置内存频率的功能。

要设置内存频率,需要在开机时按下相应的按键(通常是DEL、F2或F10),进入BIOS或UEFI设置界面。然后,找到“Advanced”、“DRAM Configuration”或类似的选项,进入内存设置页面。

在内存设置页面中,可以找到内存频率选项。根据内存条的规格和主板的支持情况,选择合适的内存频率设置。设置完成后,保存并退出BIOS或UEFI设置界面,系统将重新启动并应用新的内存频率设置。

请注意,修改内存频率可能会导致系统稳定性问题,应该谨慎 *** 作,并根据需要进行相应的测试和调整。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8799097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存