访问 /proc/pid/cmdline 卡死

使用cgroup时,引起各种命令执行卡死,下面这个提到了原因
原始文章:https://rachelbythebay.com/w/2014/10/27/ps/

在使用 ls, ps, pgrep, top,以及类似的命令行时总是卡住(卡死,挂死),但是重新开窗口(重新登录shell还能使用)。也就是所谓的 "state D", 不中断的等待(uninterruptible wait)。跟当你使用 "cat /something/on/a/nfs/mount" 命令去访问已经挂掉的nfs服务器一样。 使用 ^C (Ctrl+C) 也没有反应,它卡死了,退不出来了。(甚至reboot命令都无效,reboot没反应)
然后cpu负载很低,系统IO很高,top命令出现类似 Cpu(s):  1.7%us,  3.3%sy,  0.0%ni, 00.0%id,  100.0%wa,

现在让我来告诉你,到底发生了什么,让我们来看看它的背后到底是什么在搞怪。

Linux系统有一个非常棒的虚拟文件系统叫做 /proc。你可以从这里获取到所有排列有序的关于运行态的信息。/proc/pid/cmdline 可以或多或少的告诉你对应进程的运行参数信息。 /proc/pid/exe 则是一个指向实际运行程序位置的链接(即使它已经被删除了)。

较新的Linux系统也带有一个叫做cgroup的东西。大家一般都叫它为container容器。你可以用它来限制特定资源的上限,使该上限比系统本身的小很多。一个程序(进程)可以被限制只能使用2GB的内存,而主机实际有4GB的内存。你也可以设定限制该程序(进程)所能够使用的CPU时间,限制只能运行在哪个CPU核上。或者是限制访问硬盘的带宽。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值