美文网首页
linux 进程管理命令

linux 进程管理命令

作者: 墨线宝 | 来源:发表于2023-09-05 20:48 被阅读0次

    进程管理命令

    查看进程命令

    ps命令

    显示系统上运行的进程列表

    # 查看系统中所有正在运行的系统
    ps aux
    
    # 获取占用内存资源最多的10个进程,可以使用如下命令组合:
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
    # 获取占用CPU资源最多的10个进程,可以使用如下命令组合:
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
    
    
    
    ------------
    a  显示所有用户的所有进程,除了会话引线
    u  显示进程的归属用户及内存的使用情况,按照用户名和启动时间顺序显示
    x  显示没有控制终端的进程
    -e  显示系统中所有的进程
    -f  显示进程间关系
    -H  显示树状结构
    -r  显示当前终端的程序
    -T  显示当前终端的所有程序
    -p  根据进程ID显示对应的信息
    -A 简明查看系统启动的所有进程
    aux 显示所有用户所有进程的详细信息
    
    
    ps -ef
    
    
    

    显示的内容

    ps命令结果
    • USER 哪个用户产生的
    • PID 进程的ID号
    • %CPU 该进程占用CPU资源的百分比
    • %MEM 该进程占用物理内存的百分比
    • VSZ 该进程占用虚拟内存的大小,单位KB
    • RSS 该进程占用实际物理内存的大小,单位KB
    • TTY 该进程是在哪个终端中运行的。tty1-tty7代表本地控制台终端,tty1-tty6是本地字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端,一般是远程连接的终端,第一个远程连接占用的是pts/0终端,依次递增,?表示由内核直接启动的,是系统进程
    • STAT 进程状态。
      • D表示不可唤醒的睡眠状态,通常用于I/O情况
      • R表示进程正在进行
      • S表示进程在睡眠状态,可被唤醒
      • T表示停止状态,可能是在后台暂停或进程在出错状态
      • W表示内存交互状态
      • X表示死掉的进程
      • Z表示僵尸进程。进程已经终止,但是部分程序还在内存当中
      • <表示高优先级
      • N表示低优先级
      • L表示被锁入内存
      • s表示饱汉子进程
      • l表示多线程
      • +表示位于后台
    • START 该进程的启动时间
    • TIME 该进程占用CPU的运算时间
    • COMMAND 产生此进程的命令

    top命令

    实时对系统处理器状态进行监控

    top -p  1298
    
    -------
    选项
    -p  只查看某个PID
    -b  分屏显示输出信息,结合-n可以把数据可以写入文件
    -n  刷新几次
    -d  指定刷新间隔
    -i  不显示闲置的进程信息
    -c  显示进程的整个命令路径
    
    
    
    
    
    ------
    交互选项
    P  按照CPU排序,默认
    M  按照内存使用率排序
    N  按照PID排序
    k  终止一个进程,提示用户输入一个需要终止进程的pid
    i  忽略闲置进程
    s  改变top刷新间隔
    o  改变输出信息中显示项目的顺序。按小写的a~z键可以将相应的列向右移动,按大写的A~Z键可以将相应的列向左移动。回车确认
    c  显示完整命令行
    q  退出top命令
    
    默认情况下,top是按照进程来显示CPU消耗情况的,按 SHIFT+H 可以按照线程来查看CPU的消耗情况
    

    显示的内容

    top命令结果

    第一行是任务队列信息,返回信息与uptime类似,系统当前时间、系统运行了多长时间、有多少用户正在使用该系统、系统每隔1分钟、5分钟、15分钟的平均负载

    第二行是进程统计信息,分别为总数、正在运行的数量、睡眠的数量、停止的数量、僵尸数

    第三行 %Cpu一行中展示的是cpu的使用情况

    • us (User time)表示用户进程占用的时间
    • sy (System time)表示系统进程占用的时间 us+sy一般合理值是在60-85%,超过85则会影响吞吐量
    • ni (Nice time)表示系统花费在调整进程优先级上的时间
    • id (Idle time)一般大于40,表示CPU空闲时间,id经常小于40,表示cpu的负荷很重
    • wa (Waiting time)一般应小于25%,表示用于等待IO完成的CPU时间,超过25%的wa的值可以表示子系统可能没有被正确平衡,也可能是磁盘密集工作负载的结果,系统的磁盘或其它I/o可能有问题,可以通过iostat/SAR –C命令进一步分解分析
    • hi (Hardirq time)表示处理硬件中断的CPU时间
    • si (Softirq time)表示处理软件中断的CPU时间
    • st (Steal time)表示当前CPU被强制(involuntary wait )等待另外虚拟的CPU处理完毕时花费的时间,此时 hypervisor 在为另一个虚拟处理器服务

    最下边一栏是进程信息区

    • PR 进程优先级
    • VIRT 进程使用的虚拟内存总量。VIRT=SWAP+RES
    • RES 进程使用的、未被换出的物理内存大小。RES=CODE+DATA
    • SHR 共享内存大小
    • S 进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪/停止,Z表示僵死进程

    如果想查看每个CPU的利用率,可以按1来查看每个cpu核的利用率了

    pstree命令

    可以查看到依赖关系

    pstree -aup
    
    -a  显示每个程序的完整指令,包括路径,参数
    -c  不使用精简标示法
    -G  使用VT100终端机的列绘图字符
    -h  列出树状图时,特别标明现在执行的程序
    -H 程序识别码   此参数的效果与-h参数类似,但特别标注指定的程序
    -l  采用长列格式显示树状图
    -n  用程序识别码排序
    -p  显示程序识别码
    -u  显示用户名称
    

    pmap命令

    显示进程调用的各种库分别占用内存的情况,可以看到所有内存地址的详细信息,而且还显示了启动进程的命令

    # 通过进程id来查找
    pmap -d 133872
    

    mpstat命令

    显示多处理器系统的CPU使用率,这些信息存放在/proc/stat文件中


    mpstat命令结果

    杀死进程命令

    #强制关闭指定进程
    kill -9 pid
    
    # 关闭指定进程
    kill pid 
    
    # 关闭服务的所有进程
    killall 服务名
    
    # 强制关闭服务的所有进程
    killall -9 服务名
    

    pidstat命令

    指令
    # -w 进程的上下文切换
    # -d 进程IO
    # -r 进程内存使用
    # -u 进程cpu使用
    
    
    
    # cswch/s 是让步式上下文切换
    pidstat -w
    
    UID  PID   cswch/s nvcswch/s  Command
    
    # 5s一次监控进程pid为2213
    pidstat -w -I -p 2213 5
    
    # 监控进程pid的ip的io
    pidstat -d -p 2213
    UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
    

    进程内存文件

    linux中,在/proc/{pid}目录下存储指定进程的相关信息,其中/proc/{PID}/smaps 文件中记录着当前进程所对应的内存映像信息,可以通过该信息查询指定进程的swap使用情况

    cat /proc/15812/smaps | grep Swap
    

    https://zhhll.icu/2021/linux/日常管理/进程管理命令/

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:linux 进程管理命令

          本文链接:https://www.haomeiwen.com/subject/yrghvdtx.html