V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
madizmChou
V2EX  ›  问与答

Linux 服务器内存占用高达 90%,被一个不知道哪儿来的进程占用了,如何排查

  •  
  •   madizmChou · 2020-06-22 18:31:04 +08:00 · 2509 次点击
    这是一个创建于 1615 天前的主题,其中的信息可能已经有所发展或是发生改变。

    NJytqf.png

    这是公用的测试服务器,我寻思首先应该找到这个文件在哪儿,这个 find 命令能行吗

    find / ROInmw -type f -executable -print
    

    返回

    find: ‘ROInmw’: 没有那个文件或目录
    
    第 1 条附言  ·  2020-06-23 09:27:19 +08:00
    笔误。。是 cpu 的占用,不影响各位大佬答题😂😂
    21 条回复    2020-06-28 18:18:13 +08:00
    lululau
        1
    lululau  
       2020-06-22 18:34:12 +08:00 via iPhone
    lsof
    yujiang
        2
    yujiang  
       2020-06-22 18:48:09 +08:00 via Android   ❤️ 2
    先 kill 掉再排查吧,这个命名法感觉不是善茬
    vissssa
        3
    vissssa  
       2020-06-22 18:51:39 +08:00
    敲一下试试
    itskingname
        4
    itskingname  
       2020-06-22 19:00:23 +08:00   ❤️ 3
    有 pid,就可以找到文件地址。

    sudo ls -l /proc/<pid>/cwd

    这里的 cwd 是一个软连接,通过 ls -l 可以显示出它指向的文件夹地址。
    ladypxy
        5
    ladypxy  
       2020-06-22 19:12:06 +08:00 via iPhone
    ps -ef
    CodeCodeStudy
        6
    CodeCodeStudy  
       2020-06-22 19:12:33 +08:00
    假设 pid 是 12207,进入到 /proc/12207,ls -l
    cwd 查看该进程的所在目录,注意后面不要有斜杠,因为这个文件是一个软链接,加斜杠的话就会列出目标目录的文件出来
    exe 查看该进程的可执行文件
    uid_map 查看该进程的用户和用户组
    fd 查看该进程打开的文件描述符
    cmdline 查看该进程的调用的命令
    environ 是环境变量
    net/netstat 该进程的流量统计
    madizmChou
        7
    madizmChou  
    OP
       2020-06-22 19:13:24 +08:00
    @itskingname
    sudo ls -l /proc/<pid>/cwd
    -------------------
    返回
    lrwxrwxrwx 1 root root 0 6 月 22 18:20 /proc/12207/cwd -> /
    😂
    CodeCodeStudy
        8
    CodeCodeStudy  
       2020-06-22 19:21:34 +08:00
    CodeCodeStudy
        9
    CodeCodeStudy  
       2020-06-22 19:22:28 +08:00   ❤️ 1
    @madizmChou
    cat /proc/12207/exe 查看可执行文件的路径
    cat /proc/12207/cmdline 查看该进程的调用的命令
    Vhc
        10
    Vhc  
       2020-06-22 19:28:38 +08:00   ❤️ 4
    楼主,你确定自己能分清 CPU 和 内存?
    610915518
        11
    610915518  
       2020-06-22 19:30:04 +08:00
    10 楼神回复
    exiahan
        12
    exiahan  
       2020-06-22 19:54:35 +08:00 via Android
    内存映像 dump 出来看看?
    先 cat /proc/pid/maps,然后找到这玩意对应的内存区域,然后
    dd if=/proc/pid/mems of=xxx skip=offset count=size
    baiduyixia
        13
    baiduyixia  
       2020-06-22 21:24:32 +08:00
    @Vhc 9 楼之前那些人是不是也没分清楚
    May725
        14
    May725  
       2020-06-22 22:05:36 +08:00 via iPhone
    90 占用,默认就是 cpu 了,结果发现你标题写的是内存,不过不影响大家答题
    msg7086
        15
    msg7086  
       2020-06-23 05:40:27 +08:00
    800%的 CPU 占用,不是挖矿还能是啥? root 账号挖矿,不马上重装系统?
    itskingname
        16
    itskingname  
       2020-06-23 09:22:01 +08:00
    @madizmChou 说明这个程序就被放在根目录下面。
    xiaooloong
        17
    xiaooloong  
       2020-06-23 15:45:57 +08:00
    挖矿程序,看看怎么侵入的。先排查下弱口令、redis 。
    CodeCodeStudy
        18
    CodeCodeStudy  
       2020-06-23 21:28:04 +08:00
    @baiduyixia 看清楚了,是 CPU 的问题,不过题主想知道的是文件在哪里,不影响答题
    julyclyde
        19
    julyclyde  
       2020-06-28 17:43:52 +08:00
    @itskingname 并不能说明放在根目录
    madizmChou
        20
    madizmChou  
    OP
       2020-06-28 18:17:04 +08:00
    @julyclyde 到根目录检查了,并没有。有可能是程序跑起来后自动删除了?
    julyclyde
        21
    julyclyde  
       2020-06-28 18:18:13 +08:00
    @madizmChou 你就看 exe 那个符号链接吧。跟 cwd 没有任何关系
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:49 · PVG 02:49 · LAX 10:49 · JFK 13:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.