精华内容
下载资源
问答
  • 用cgroup限制内存以防止Linux内存用尽卡死 Linux内存用尽的情况下,整个界面,包括tty和ctrl-alt-F1都会卡住难以响应。虽然Linux内核有OOM Killer机制杀掉吃内存的进程,但经常内存用尽时连OOM Killer都无法动作...

    用cgroup限制内存以防止Linux因内存用尽卡死

    Linux在内存用尽的情况下,整个界面,包括tty和ctrl-alt-F1都会卡住难以响应。虽然Linux内核有OOM Killer机制杀掉吃内存的进程,但经常内存用尽时连OOM Killer都无法动作。

    本篇讲述如何用cgroups限制内存防止整个Linux因内存用尽卡死。

    因内存用尽卡住时怎么办

    1. 如果鼠标还能动一点,可以尝试在top中杀掉吃内存的进程。但这时想进入topkill -9都很难。ctrl-alt-F1都会卡。
    2. 如果鼠标完全不能动,可以等待15分钟左右,OOM Killer可能会动作杀掉吃内存的进程,然后就可以恢复。如果15分钟还无反应,那是真卡死了。
    3. 魔法键强制安全重启。

    用cgroup限制用户内存留空间给内核动作

    cgroup是内核的一个资源限制功能。这里限制日常用户的内存,留300MB左右给root和内核。

    我的Linux是否支持cgroup

    cat /proc/self/cgroup
    

    这里可以列出某进程所处的资源限制组。有则表示内核支持cgroup

    安装cgroup相关工具

    我们要用到cgconfigparsercgrulesengd这两个工具。安装libcgroup-tools(可能因发行版而异)这个包。

    配置cgroup规则

    /etc/cgconfig.conf中写

    group users_mem_limit {
        memory {
            memory.limit_in_bytes = 3500000000;
        }
    }
    

    这里限制共使用3.5G内存(假设共有4G内存)。用cat /proc/meminfo查看准确的总内存大小以决定数值。

    /etc/cgrules.conf中写

    @users	memory	users_mem_limit/
    日常用户名	memory	users_mem_limit/
    

    这是将规则应用给users组和日常用户。

    接下来运行

    # cgconfigparser -l /etc/cgconfig.conf
    # cgrulesengd
    

    等待两分钟,日常用户的所有进程就会被放入资源限制规则组中,新打开的内存也会自动加入。cat /proc/<PID>/cgroup可以看某进程是否已加入组。

    如果成功,将上面两条命令设置成为开机自动以root运行就行。具体步骤略。

    吃内存测试

    如果想要测试这个方法的效果,可以用这个工具来吃内存(自己make一下)。

    $ ./memhog 100 9999999
    

    它会一次吃掉100MB内存,逐渐把内存用尽(这并不能完全模拟所有程序运行时的内存使用方式,这只是个简单的测试)

    其他方法

    Linux有内存用尽卡死的问题,是Linux内核的OOM机制不够好。这或许是它不如Windows的一个地方。

    另外许多人推荐一个叫Early OOM的程序,用它来替代Linux自身的OOM。

    打赏作者

    写作不易,感谢支持!
    打赏二维码

    展开全文
  • Linux内存使用限制

    千次阅读 2016-03-25 09:27:33
    在我们使用Linux的过程中,对某个用户或进程做内存使用限制是很常见的事情。通常我们有两种办法:1、ulimit中-m参数,limits.conf里面配置;在limits.conf中,我们很容易找到rss是和内存相关的,但细心的同学会发现...

        在我们使用Linux的过程中,对某个用户或进程做内存使用限制是很常见的事情。通常我们有两种办法:

    1、ulimit中-m参数,limits.conf里面配置;

    在limits.conf中,我们很容易找到rss是和内存相关的,但细心的同学会发现rss定义后并不生效,还会以为是没重启或者其他原因,其实man下limits.conf就能找到说明:

    rss               maximum resident set size (KB) (Ignored in Linux 2.4.30 andhigher)

    恩,现在的内核早都超过2.4.30了,那怎么办呢,还有一个as变量也是可以用的。

    as - address space limit (KB)



    2、cgroup中定义大小;

    cgroup中的用法比较多,可以自己查下,懒得写了。


        先贡献一个查看某个用户当前使用的总内存大小命令

    ps   -o rss  aU qujun  |grep -v RSS|awk 'BEGIN {sum=0}{sum+=$1}END{print sum}'


    转载于:https://blog.51cto.com/qujunorz/1755084

    展开全文
  • linux限制用户的可用内存

    千次阅读 2013-05-07 16:09:01
    Linux下管理员可以限制某个用户内存[root@localhost ~]# su - test[test@localhost ~]$ ulimit -acore file size(blocks, -c) 0data seg size (kbytes, -d) unlimitedschedul...
    Linux下管理员可以限制某个用户的内存
    [root@localhost ~]# su - test
    [test@localhost ~]$ ulimit -a
    core file size                    (blocks, -c) 0
    data seg size                     (kbytes, -d) unlimited
    scheduling priority                         (-e) 0
    file size                             (blocks, -f) unlimited
    pending signals                                 (-i) 8192
    max locked memory             (kbytes, -l) 32
    max memory size                 (kbytes, -m) unlimited
    open files                                            (-n) 1024
    pipe size                        (512 bytes, -p) 8
    POSIX message queues         (bytes, -q) 819200
    real-time priority                            (-r) 0
    stack size                            (kbytes, -s) 10240
    cpu time                             (seconds, -t) unlimited
    max user processes                            (-u) 8192
    virtual memory                    (kbytes, -v) unlimited
    file locks                                            (-x) unlimited
    [test@localhost ~]$
        ulimit -a 命令统计了当前用户在系统中的多种限制信息,从 virtual memory中可以看到,当前对用户并没有做内存使用限制。
          限制test用户内存
    [root@localhost ~]# vi /etc/security/limits.conf
    ........
    #在最后加入一行,保存退出
    test        hard        as            38300
    [root@localhost ~]#su - test
    [test@localhost ~]$ulimit -a
    ......
    virtual memory          (kbytes, -v) 38300
    ......





    转载于:https://blog.51cto.com/4359260/1194871

    展开全文
  • linux普通用户内存限制的问题

    千次阅读 2019-02-24 10:31:00
    把应用从root用户迁移到普通用户test,由于普通用户会被限制最大的进程数,当进程数占满后出现了下面的错误 /bin/bash: Resource temporarily unavailable。 一般新建的用户最大进程数是4096 编辑两个...

     把应用从root用户迁移到普通用户test,由于普通用户会被限制最大的进程数,当进程数占满后出现了下面的错误

    /bin/bash: Resource temporarily unavailable。

     

    一般新建的用户最大进程数是4096

     

    编辑两个文件

    yanfa_ylcloud_java是你要加大进程的用户

    vi /etc/security/limits.d/20-nproc.conf 

     

    vi /etc/security/limits.conf

    hard/soft:soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错。

    nproc:最大进程数

    nofile:最大打开的文件数


    保存文件退出即可生效

     

    查看指定PID的线程数

    cat/proc/<pid>/status

     

     

     转载请注明博客出处:http://www.cnblogs.com/cjh-notes/

     

    转载于:https://www.cnblogs.com/cjh-notes/p/10425465.html

    展开全文
  • 如何破解mssql for linux 3.5G内存限制

    千次阅读 2017-06-04 15:49:12
    微软发布了SQLServer for Linux,但是安装竟然需要3.5GB内存,这让大部分云主机用户都没办法尝试这个新东西 这篇我将讲解如何破解这个内存限制 要看关键的可以直接跳到第6步,只需要替换4个字节就可以破解这个限制 ...
  • linux 64位CPU内存限制

    千次阅读 2013-09-01 11:50:35
    一个系统的内存大小限制取决于CPU和操作系统,当然啦,也受限于...对于Linux而言,一个进程空间的大小为4G,其中用户空间可以使用3G。 那么64位系统呢? 理论上讲,64位的地址总线可以支持高达16EB(2^64)。EB
  • Linux限制用户的磁盘空间和内存使用

    千次阅读 2019-06-01 22:21:00
    进入后若想限制每一个用户内存使用量不能超过20G左右,则在最下面添加下图中的语句 * hard rss 21000000 若想限制某个用户test的内存使用量不能超过20G左右,则可添加下图中的命令 @test hard rss ...
  • 去掉内存和文件句柄限制 以coherence用户为例子: 修改:/etc/security/limits.conf   coherence hard nproc 655360 coherence soft nproc 655360   coherence hard nofile 65536 coherence soft no...
  • linux限制用户进程CPU和内存占用率

    千次阅读 2012-02-27 00:21:47
    http://linux.chinaitlab.com/administer/827444.html
  • Linux限制用户行为

    千次阅读 2015-03-23 19:56:13
    最近服务器上人数较多,资源紧张。...特意查资料,对用户硬盘空间、内存使用、CPU等进行限制。 所用系统情况:Linux ic-m3.localdomain 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_6
  • Linux内存描述之概述--Linux内存管理(一)

    万次阅读 多人点赞 2016-08-31 13:29:34
    日期 内核版本 架构 作者 GitHub CSDN 2016-08-31 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux内存管理 ... 链接 内存管理(一)内存模型之Node ... Linux-2.6.32 NUMA架构之内存和调度
  • 日期 内核版本 架构 作者 GitHub CSDN 2016-08-31 Linux-4.7 X86 & arm ... Linux内存管理 http://blog.csdn.net/vanbreaker/article/details/75799411 前景回顾前面我们讲到服务器体系(SMP, NUMA, M
  • 日期 内核版本 架构 作者 GitHub CSDN 2016-08-31 ... Linux内存管理 1 前景回顾前面我们讲到服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA)1.1 UMA和NUMA两种模型共享存储型多处理机有两种模型
  • linux内存释放和使用限制

    千次阅读 2017-07-06 11:24:21
    1、内存释放 命令:echo 1 > /proc/sys/vm/drop_caches 解释: drop_caches的值可以是0-3之间的数字,代表不同的含义: 0:不释放(系统默认值) 1:释放页缓存 2:释放dentries和inodes 3:释放所有缓存  案例: ...
  • Linux零碎记录之ulimit【堆栈大小、stack size、进程数限制、文件句柄限制linux用户空间限制】 写了个小程序 本来打算写个hash表的,但是出现“段错误” #include struct a{ char a[ 4096 ]; char a1[ ...
  • linux限制用户进程数

    千次阅读 2014-12-05 11:20:14
    对于Linux中多用户的管理,往往我们需要去限制每一个用户Linux中使用启动的进程数量,避免进程数、CPU、内存使用率占用过高等问题。此外,对于fork炸弹,也可以通过限制用户的进程数来避免。那么我们应该如何去...
  • #Linux系统限制普通用户内存使用(ulimit)和硬盘配额空间(quota) 限制普通用户内存 第1步,首先进到Linux终端用vi编辑/etc/security/limits.conf : # max memory locked : means the size of the memory ...
  • 所谓共享内存就是使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。其他进程能把同一段共享...
  • linux 内核内存分配

    千次阅读 2016-04-25 18:37:37
    linux 内核内存分配
  • 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。而实际应用的...
  • linux内存模型

    千次阅读 2016-03-17 17:22:39
    理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第一步,因此本文将概述 Linux 内存模型和管理。 Linux 使用的是单一整体式结构 (Monolithic),其中定义了一组原语或系统调用以实现操作系统的...
  • linux进程内存布局

    千次阅读 2012-03-12 00:16:10
    linux进程内存布局 LinuxXPUbuntuthread   内存管理是操作系统的核心之一,最近在研究内核的内存管理以及 C 运行时库对内存的分配和管理,涉及到进程在内存的布局,在此对进程的内存布局做一下总结: ...
  • LinuxLinux的内核空间(低端内存、高端内存

    万次阅读 多人点赞 2018-07-20 16:50:01
    内核也是程序,也应该具有自己的虚存空间,但是作为一种为用户程序服务的程序,内核空间有它自己的特点。   内核空间与用户空间的关系 在一个32位系统中,一个程序的虚拟空间最大可以是4GB,那么最直接的做法...
  • Linux 内存管理

    万次阅读 多人点赞 2011-01-19 16:30:00
    1.Linux 进程在内存数据结构 可以看到一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分: 1)代码段:存放CPU执行的机器指令。通常代码区是共享的,即其它执行程序可调用它。...
  • Linux虚拟内存空间分布

    千次阅读 2019-03-03 16:38:03
    程序只是一段可以执行的代码文件,通俗讲在 linux 上就是一个可执行文件。当一个程序运 行时就被称为进程,即进程是运行状态的程序。 程序存储了一系列文件信息,这些信息描述了如何在运行时创建一个进程,包含...
  • 32位Linux单进程有4G内存限制

    千次阅读 2011-07-31 23:57:12
    本文转自http://www.linuxhao.com/Linux/doc/Linux_doc.asp?id=2995  可用下面代码测试系统能给单进程分配多少用户内存:  1 #include  2 #include  3  4 int main()
  • Linux内存管理

    千次阅读 2009-08-19 17:11:00
    本文首先介绍一下Linux内存管理方式,着重说明一下用户空间的内存管理,包括Linux虚拟映射以及GLIBC中malloc的实现;然后简要介绍单进程多线程的内存管理方式,主要涉及各线程堆栈空间的分配;Linux内存管理Linux...
  • LINUX预留内存的实现

    千次阅读 2020-02-18 17:43:18
    LINUX应用开发中,可能需要使用连续的物理地址来存储一些数据或者进行DMA操作,但是由于...如果需要使用连续的物理地址,就需要进行预留内存,来将一部分内存保留起来,不用做LINUX建立页表使用,也就是说用户程序...
  • Linux打开文件限制

    千次阅读 2018-05-16 15:59:06
    Linux打开文件限制1、修改用户进程可打开文件数限制linux平台上,无论是客户端程序还是服务器端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,927
精华内容 77,970
关键字:

linux用户的内存限制

linux 订阅