Linux进程查看与管理命令总结

Linux进程查看与管理命令总结

  • 内核的功能:

    • 进程管理

    • 文件系统

    • 网络功能

    • 内存管理

    • 驱动程序

    • 安全功能

  • Process:运行中程序的一个副本。(存在生命周期)

  • Linux内核存储进程信息的固定格式:task struct

    • 多个任务的task struct组件的链表:task list

  • 进程创建:

    • init

      • 父子关系

      • 进程:都有其父进程创建

        • fork(),clone()

    • 进程优先级:

      • 0-139:

        • 1-99:实时优先级:数字越大,优先级越高

        • 100-139:静态优先级:数字越小,优先级越高

        • Nice值:-20,19

      • Big O标准

        • O(1),O(logn),O(n),0(n^2),O(2^n)

    • 进程内存

      • Page Frame:页框,用存储页面数据

        • 存储Page

        • MMU:Memory Management Unit

    • IPC:Inter Process Communicarion(进程通信机制)

      • 同一主机上:

        • signal

        • shm:shared memory

        • semerphor

      • 不同主机上:

        • rpc:remote procecure call(远程过程调用)

        • socket:

  • Linux内核:抢占式多任务

    • 进程类型:

      • 守护进程:在系统引导过程中启动的进程,与终端无关的进程。

      • 前台进程:跟终端相关,通过终端启动的进程

        • 注:也可将在前台启动的进程送往后台,以守护模式运行。

    • 进程状态

      • 运行态:running

      • 就绪态:ready

      • 睡眠态:

        • 可中断:interruptable

        • 不可中断:uninterruptable

      • 停止态:暂停于内存中,但不会被调度,除非手动启动之:stopped

      • 僵死态:zombie

    • 进程的分类:

      • cpu-Bound

      • IO-Bound

  • Linux系统上的进程查看及管理工具:pstree,ps,pidof,pgrep,top ,htop,glances,pmap,vnstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…

    • pstree命令:pstree-display a tree of processes

    • ps命令:

      • /proc/:内核中的状态信息;

        • 内核参数:

          • 可设置其值从而调整内核运行特性的参数;/proc/sys/

          • 状态变量:其用于输出内核中统计信息或状态信息,仅用于查看;

      • 进程:

        • /proc/#:(#:PID)

      • ps-report a snapshot of the current processes

        • ps[options]

          • 选项有三种风格:

            • UNIX options,which may be grouped and must be preceded by a dash。

            • BSD options,which may be grouped and must not be used with a dash。

            • GNU long options,which are preceded by two dashes。

          • 启动进程的方式:

            • 系统启动过程中自动启动:与终端无关的进程;

            • 用户通过终端启动:与终端相关的进程;

          • 选项:

            • a:所有与终端相关的进程;

            • x:所有与终端无关的进程;

            • u:以用户为中心组织进程状态信息显示;

          • 常用组合之一:aux

            • VSZ:虚拟内存集;

            • RSS:Resident Size,常驻内存集;

            • STAT:

              • R:running

              • S:interruptable sleeping

              • D:uninterruptable sleeping

              • T:Stopped

              • Z:zombie

              • +:前台进程

              • I:多线程进程

              • N:低优先进程

              • <:高级优先进程

              • s:session leader

          • 常用组合二:-ef

            • -F:显示完整格式的进程信息;

              • C:cpu utilization

              • PSR:运行于那颗CPU之上

            • -H:以层级结构显示进程的相关信息;

          • 常用组合三:-eFH

          • 常用组合四:

            • o field1,field2,…:自定义要显示的字段列表,以逗号分隔;

              • 常用的field:pid,ni,pri,psr,pcpu,stat,comm,tty,ppid,rtprio

                • ni:nice值

                • pri:priority,优先级;

                • rtprio:real time priority;实时优先级;

    • pgrep,pkill命令:-look up or signal processes based on name and other attributes

      • pgrep[options]pattern

        • -u uid:effective user

        • -U uid:read user

        • -t TERMINAL:与指定的终端相关的进程;

        • -l显示进程名;

        • -a:显示完整格式的进程名;

        • -P pid:显示此进程的子进程;

    • pidof命令:

      • 根据进程名,取其pid;

    • top命令;

      • -display Linux processes

        • 排序:

          • P:以占据cpu百分比排序;

          • M:以占据内存百分比排序;

          • T:以占用cup时间排序;

        • 首部信息:

          • uptime信息:I命令

          • tasks及cpu信息:t命令

          • 内存信息:m命令

        • 退出命令:q

        • 修改刷新时间命令:s

        • 终止指定的进程:k

        • 选项:

          • -d #:指定刷新时间间隔,默认为3秒;

          • -b:以批次方式显示;

          • -n #:显示多少批次;

    • uptime命令:显示系统时间、运行时长及平均负载;

      • 过去1分钟、5分钟和15分钟的平均负载;

        • 等待运行的进程队列长度

    • htop命令:

      • 选项:

        • -d #:指定延迟时间间隔;

        • -u UserName:仅显示指定用户的进程;

        • -s COLUME:以指定字段进行排序;

      • 子命令:

        • l:显示选定的进程打开的文件列表;

        • s:跟踪选定的进程的系统调用;

        • t:以层级关系显示各进程的状态;

        • a:将选定的进程绑定至某指定的CPU核心;

    • vmstat命令:

      • -Report virtual memory statistics

      • vmstat [option][delay[count]]

        • procs:

          • r:等待运行的程序的个数;CPU上等待运行的任务的队列长度;

          • b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

        • memory:

          • swpd:交换内存使用总量;

          • free:空闲的物理内存总量;

          • buffer:用于buffer的内存总量;

          • cache:用于cache的内存总量

        • swap:

          • si:数据进入swap中的数据速率(kb/s)

          • so:数据离开swap的速录(kb/s)

        • io:

          • bi:从块设备读入数据到系统的速度(kb/s)

          • bo:保存数据至块设备的速率(kb/s)

        • system:

          • in:interrupts,终端速率;

          • cs:context switch,上下文切换的速率;

        • cpu

          • us:user space

          • sy:system

          • id:idle

          • wa:wait

          • st:stolen

      • 选项:

        • -s:显示内存统计数据;

    • pmap命令:-report memory map of a process

      • pmap [options]pid[…]

        • -x:显示详细格式的信息;

      • 另一种查看方式:cat /proc/PIDmaps

    • glances命令: -A cross-platform curses-based monitoring tool

      • 内建命令

      • 常用选项:

        • -b:以Byte为单位显示网上数据速率;

        • -d:关闭磁盘I/O模块;

        • -m:关闭mount模块;

        • -n:关闭network模块;

        • -t #:刷新时间间隔;

        • -1:每个cpu的相关数据单独显示

        • -o{HTML|CSV}:输出格式;

        • -f /PATH/TO/SOMEDIR:设定输出文件的位置;

      • C/S模式下运行glances命令;

        • 服务模式:

          • glances -s -B IPADDR

          • IPADDR:本机的地址,用于监听;

        • 客户端模式

          • glances -c IPADDR

          • IPADDR:是远程服务器的地址

    • dstat命令:-vversatile tool for generating system resource statistics

      • dstat[-afv][options…][delay[count]]

      • 常用选项:

        • -c: 显示cpu相关信息

          • -C #,#,…,total

        • -d: 显示disk相关信息

          • -D total,sda,sdb,…

        • -g:显示page相关统计数据

        • -m: 显示memory相关统计数据

        • -n: 显示network相关统计数据

        • -p: 显示process相关统计数据

        • -r: 显示io请求相关的统计数据

        • -s: 显示swapped相关的统计数据

        • –tcp

        • –udp

        • –unix

        • –raw

        • –socket

        • –ipc

        • –top-cpu:显示最占用CPU的进程

        • –top-io: 显示最占用io的进程

        • –top-mem: 显示最占用内存的进程

        • –top-latency: 显示延迟最大的进程

    • kill命令: -terminate a process向进程发送控制信号,以实现对进程管理

      • 显示当前系统可用信号:

      • kill -l

      • 每个信号的表示方法有三种;

        • 1)信号的数字标识;

        • 2)信号的完整名称;

        • 3)信号的简写名称;

      • 向发信号:

      • kill[-s signal|-SIGNAL]PID…

      • 常用信号:

        • 1) SIGHUP: 无须关闭进程而让其重读配置文件

        • 2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

        • 9) SIGKILL: 杀死正在运行的进程

        • 15) SIGTERM:终止正在运行的进程

        • 18) SIGCONT:

        • 19) SIGSTOP: 指定信号的方法:

        • (1) 信号的数字标识;1, 2, 9

        • (2) 信号完整名称;SIGHUP

        • (3) 信号的简写名称;HUP

    • killall命令: -kill processes by name

      • killall [-SIGNAL] program

原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/44497

(0)
上一篇 2016-09-07 20:39
下一篇 2016-09-07 21:36

相关推荐

  • MariaDB日志

    MariaDB日志 查询日志:query log; 慢查询日志:slow query log 查询时长超出指定界限。 错误日志:error log 二进制日志:binary log;此中存储要发生改变或潜在发生改变的语句。 中继日志:reley log 事务日志:transaction log 1、查询日志 记录查询语句,日志存储位置:一般不开启。 文件:f…

    Linux干货 2016-11-20
  • Linux系统下的翻译神器——Goldendict

    Linux系统下的翻译神器——Goldendict 学习Linux时明显感受到学习英文的重要性。绝大多数Linux的发行版英文版的功能要远强于中文。因此一款好的翻译软件是了解熟悉Linux系统的必需品。在Windows系统下有各种好用的词典程序,包括有道词典、bing词典、金山词霸等等,而这些软件都不能在linux下使用,即使能够使用也只是测试版,功能太少。…

    Linux干货 2017-04-24
  • Shell脚本中循环浅析

    在shell脚本中,循环是很重要的一环。循环可以不断的执行某个程序段落,直到用户设置的条件达成为止。在shell中,除了这种依据判断时达成与否的不定循环之外,还有另外一种已经固定要跑多少次的循环,可称之为固定循环。下面,我们主要对for,while,until三种循环做一下介绍。   一、for循环 For循环是给定变量列表的固定次数循环,其执行机…

    Linux干货 2016-08-21
  • vim文本操作、例行性工作、脚本编程_第六周练习(01)

    vim文本操作 Q1:复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@promote /]# cp /etc/rc.d/rc.sysinit /tmp/ [root@promote /]# l…

    Linux干货 2016-12-18
  • 系统基础之压缩归档工具详解

    压缩和解压缩工具 概论  在使用操作系统时,我们常会遇到大文件,会使我们很头疼.在面对时间和空间上的选择,只能选择空间,这就要用到压缩工具和归档工具,下面为大家一一介绍.  压缩文件只压缩文本格式的文件,通常不压缩已经是压缩的文件.  压缩文件就会涉及到压缩比:    原理:通过了解文本文件的数据形式,运用压…

    Linux干货 2016-08-18
  • 集群-基础知识(2)

    负载均衡集群实现方法: 1、硬件方式 F5,CITRX,NETSCALER,A10(价格逐渐降低,由于为了防止调度器成为单点故障,所以要配置一台备用设备,所以造价更高了) 2、软件方式 四层:LVS(根据请求的ip和端口来分发),性能好,但对高级特性支持不好。 七层(反向代理):Nginx(http,smtp,pop3,imap),Haproxy(主要是ht…

    Linux干货 2015-11-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 11:04

    尽量能将笔记转换为优秀的博客来,而不是粘贴笔记,相信自己,加油!!!