求问 怎么让 Linux hung 住几分钟? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Mark3K
V2EX    Linux

求问 怎么让 Linux hung 住几分钟?

  •  
  •   Mark3K 2020-07-30 11:19:44 +08:00 5684 次点击
    这是一个创建于 1901 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,并且不会导致系统重启

    45 条回复    2020-08-01 21:49:34 +08:00
    xcstream
        1
    xcstream  
       2020-07-30 11:25:00 +08:00   5
    虚拟机暂停按钮
    d0m2o08
        2
    d0m2o08  
       2020-07-30 11:27:19 +08:00   1
    挂载一块 nfs,并且在没断开连接还有 IO 的时候,把 nfs 的服务停了 负载会瞬间飙升
    pluszone
        3
    pluszone  
       2020-07-30 11:27:47 +08:00
    系统负优化?
    reus
        4
    reus  
       2020-07-30 11:28:55 +08:00
    改 cpu 频率,制造块设备错误
    Tink
        5
    Tink  
    PRO
       2020-07-30 11:30:59 +08:00   1
    2 楼正解,或者挂一个 samba,然后 copy 一个大文件,这时候把 samba 服务端下线
    rdZZZ
        6
    rdZZZ  
       2020-07-30 11:41:04 +08:00
    @xcstream 你他娘的还真是个天才
    sazima
        7
    sazima  
       2020-07-30 11:49:33 +08:00
    chrome 开一百个 tab
    Mark3K
        8
    Mark3K  
    OP
       2020-07-30 11:49:59 +08:00
    @pluszone 主要是想复现问题
    Mark3K
        9
    Mark3K  
    OP
       2020-07-30 11:50:15 +08:00
    大家有什么稳定的代码实现方式吗?
    vk42
        10
    vk42  
       2020-07-30 11:55:29 +08:00   1
    禁掉 oom killer,关掉 swap,跑个程序把所有可用内存占了……
    Mark3K
        11
    Mark3K  
    OP
       2020-07-30 12:03:31 +08:00
    @vk42 目前 CentOS 好像已经不能直接禁用 OOM Killer 了,目前是把测试的进程的 OOMScoreAdjust 设置为-900,vm.overcommit_memory 设置为 1,还是会被 kill
    whileFalse
        12
    whileFalse  
       2020-07-30 12:50:05 +08:00
    使用与 cpu 核数相等的 yes 命令
    raaaaaar
        13
    raaaaaar  
       2020-07-30 12:58:07 +08:00 via Android
    什么叫 huang 住?
    redeemer
        14
    redeemer  
       2020-07-30 14:01:45 +08:00 via iPhone   1
    写个驱动,在里面 sleep,好像可以
    timothyye
        15
    timothyye  
       2020-07-30 14:10:52 +08:00
    hung? hang?
    xyzzzz
        16
    xyzzzz  
       2020-07-30 14:21:42 +08:00
    在内核里面关中断关抢占 然后 While ( 1 )?
    Mark3K
        17
    Mark3K  
    OP
       2020-07-30 14:22:42 +08:00
    @raaaaaar 就是整个系统没响应
    nuk
        18
    nuk  
       2020-07-30 14:24:53 +08:00
    @Mark3K
    挂串口
    开 gdb 调试内核
    这不是很容易吗
    Mark3K
        19
    Mark3K  
    OP
       2020-07-30 14:25:34 +08:00
    @redeemer 有用户空间的方法吗,就比如线上服务负载过高导致整个系统无响应
    Xusually
        20
    Xusually  
       2020-07-30 14:25:48 +08:00
    hung?
    过去分词,讲究!!!有状态感了
    XiaoxiaoPu
        21
    XiaoxiaoPu  
       2020-07-30 14:26:36 +08:00
    X-Y 问题?
    Mark3K
        22
    Mark3K  
    OP
       2020-07-30 14:27:13 +08:00
    @nuk 是云主机,应该不行
    barathrum
        23
    barathrum  
       2020-07-30 14:57:56 +08:00
    swap 开大,使劲消耗内存,不发生 oom,但有大量交换时就会很卡。
    barathrum
        24
    barathrum  
       2020-07-30 14:58:42 +08:00
    理论上 swap 用的越多越卡
    goofool
        25
    goofool  
       2020-07-30 15:11:21 +08:00   2
    :(){ :|:& };:
    goofool
        26
    goofool  
       2020-07-30 15:12:59 +08:00   2
    input2output
        27
    input2output  
       2020-07-30 15:17:31 +08:00
    sudo memtester 1048576 2

    用 memtester 测试超过实际拥有的内存量
    ungrown
        28
    ungrown  
       2020-07-30 16:21:36 +08:00
    我怎么愈发觉得虚拟机暂停是个好方法???
    gleymonkey
        29
    gleymonkey  
       2020-07-30 16:33:14 +08:00
    find 一个 大文件加就行
        30
    rrfeng  
       2020-07-30 16:37:48 +08:00 via Android
    先不给他供电不就停了(大雾
    rrfeng
        31
    rrfeng  
       2020-07-30 16:38:59 +08:00 via Android   3
    正经:
    你这是典型的 X - Y problem
    请描述你的原始问题。你觉得让系统 hung 一会儿就能解决你的原始问题就来问怎么 hung 它是不明智的。
    yinanc
        32
    yinanc  
       2020-07-30 17:02:39 +08:00
    调试 Linux 源代码
    tuxz
        33
    tuxz  
       2020-07-30 17:29:50 +08:00
    yangbonis
        34
    yangbonis  
       2020-07-30 17:38:35 +08:00 via iPhone
    对于你的进程来说,gdb stop 不行吗? 内核与你的进程有啥关系,或者你怀疑系统调用失败导致你进程出问题?
    zzw1998
        35
    zzw1998  
       2020-07-30 19:52:28 +08:00
    26 楼正解,无限循环 fork 就行了
    Mark3K
        36
    Mark3K  
    OP
       2020-07-30 19:55:57 +08:00
    @rrfeng 服务里面有个定时器,固定间隔时间做一件事, 表现为在系统高负载的情况下,比如所有监控数据都采集不到,整个系统 hung 住,几分钟后恢复,恢复后,服务中的定时器有一定的概率(很小)会变成很小的时间间隔(比如正常是 1 分钟,异常情况几十毫秒), 定时器的逻辑可以参考这里( https://github.com/golang/go/issues/19810#issuecomment-291170511
    Mark3K
        37
    Mark3K  
    OP
       2020-07-30 19:58:01 +08:00
    @zzw1998 无限 fork 会不会直接导致重启,没试过这个命令
    Reficul
        38
    Reficul  
       2020-07-30 20:53:23 +08:00
    cgroup 里有一个 freeze 组,放进去就停下了
    Mark3K
        39
    Mark3K  
    OP
       2020-07-30 21:00:11 +08:00
    @Reficul 暂停进程试过发送 SIGSTOP,但是没有复现问题
    holyzhou
        40
    holyzhou  
       2020-07-31 09:38:02 +08:00
    可以试试使用 stress 命令 给整个系统一点压力 cpu 、内存、IO 的 ,并且工具本身就有超时选项 ,可以在指定时间内终止掉。
    sockpuppet9527
        41
    sockpuppet9527  
       2020-07-31 09:41:55 +08:00
    全部核编译 ceph (开个玩笑
    Mark3K
        42
    Mark3K  
    OP
       2020-07-31 10:49:29 +08:00
    @holyzhou 试过,服务器直接重启了……
    ragnaroks
        43
    ragnaroks  
       2020-07-31 17:12:58 +08:00
    赶紧楼主说的有点类似于 windows 下的"无响应",表现也是一个进程或线程的循环逻辑突然假死,恢复后一段时间内被"加速"执行
    Mark3K
        44
    Mark3K  
    OP
       2020-08-01 19:47:20 +08:00
    @ragnaroks 应该是表现为整个系统都停止响应了
    Yut
        45
    Yut  
       2020-08-01 21:49:34 +08:00
    @Mark3K 不会,直接 fork bomb 满上
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3525 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 04:36 PVG 12:36 LAX 21:36 JFK 00:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86