Linux进程及管理(1)

Linux进程及管理(1)

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

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), O(n^2), O(2^n)

进程内存:

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

存储Page

MMUMemory Management Unit

IPC: Inter Process Communication

同一主机上:

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, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

pstree命令:

  pstree – display a tree of processes

例一:查看文件pstree命令以树状图的方式展现进程之间的派生关系,显示效果比较直观。

[root@localhost~`]# pstree

ps: process state

ps – report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;

ps [OPTION]…

选项:支持两种风格

常用组合:aux

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

a: 与终端相关的进程;

x: 与终端无关的进程; 

  ~]# ps aux

例一:显示所有进程

[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.7 128356  7064 ?        Ss   02:42   0:09 /usr/lib/systemd/systemd --swit
root          2  0.0  0.0      0     0 ?        S    02:42   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    02:42   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    02:42   0:00 [migration/0]

USER 进程属组    PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

                        USER 进程属组

VSZ: Virtual memory SiZe,虚拟内存集

RSS: ReSident Size, 常驻内存集

STAT:进程状态

Rrunning

S: interruptable sleeping

D: uninterruptable sleeping

T: stopped

Z: zombie

+: 前台进程

l: 多线程进程

N:低优先级进程

<: 高优先级进程

s: session leader

常用组合:-ef

-e: 显示所有进程

-f: 显示完整格式程序信息

例一:显示所有进程进信息

[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:42 ?        00:00:09 /usr/lib/systemd/systemd --switched-root --syst
root          2      0  0 02:42 ?        00:00:00 [kthreadd]
root          3      2  0 02:42 ?        00:00:00 [ksoftirqd/0]

常用组合:-eFH

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

-H: 以进程层级格式显示进程相关信息

例一:显示所有信息以层级格式显示

[root@localhost ~]# ps -eFH |head
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   0 02:42 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 02:42 ?        00:00:00   [ksoftirqd/0]
root          7      2  0     0     0   0 02:42 ?        00:00:00   [migration/

常用组合:-eo, axo

-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

 o:指明要显示的字段

ni: nice

pri: priority,优先级

psr: processor, CPU

rtprio: 实时优先级

例一:指明要显示的字段信息

[root@localhost ~]# ps -axo pid,psr,stat,comm | head
   PID PSR STAT COMMAND
     1   0 Ss   systemd
     2   0 S    kthreadd
     3   0 S    ksoftirqd/0
     7   0 S    migration/0
     8   0 S    rcu_bh
     9   0 R    rcu_sched
    10   0 S    watchdog/0
    12   0 S<   khelper
    13   0 S    kdevtmpfs

pgrep, pkill过滤信息

pgrep [options] pattern

        pkill [options] pattern

 

        -u uid: effective user

        -U uid: real user

        -t terminal: 与指定终端相关的进程

        -l: 显示进程名

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

        -P pid: 显示其父进程为此处指定的进程的进程列表

例一:显示root进程号信息

[root@localhost ~]# pgrep -u root -l
1 systemd
2 kthreadd
3 ksoftirqd/0
7 migration/0
8 rcu_bh
9 rcu_sched 

pidof

        根据进程名获取其PID

例一:根据进程名获取PID

[root@localhost ~]# pidof sshd
9168 1560

toptop命令可以实时动态地查看系统的整体运行情况

        有许多内置命令:

        排序:

        P:以占据的CPU百分比;

        M:占据内存百分比;

        T:累积占据CPU时长;

        首部信息显示:

        uptime信息:l命令

        taskscpu信息:t命令

        cpu分别显示:1 (数字)

        memory信息:m命令

        退出命令:q

        修改刷新时间间隔:s

        终止指定进程:k

例一:修改刷新时间5

Change delay from 5.0 to

    选项:

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

        -b: 以批次方式;

        -n #: 显示多少批次;

htop命令:交互式进程查看器,查看关键性能数据

例一:查看系统进程信息

[root@localhost ~]# htop

选项:

        -d #: 指定延迟时间;

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

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

        命令:

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

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

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

        t: 显示进程树

 

        注意:Fedora-EPEL

进程查看工具:pstree, ps, pgrep, pidof, top, htop

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

(0)
kangkang
上一篇 2015-05-28 15:12
下一篇 2015-06-01 19:07

相关推荐

  • diy自己的linux

    准备一台liunx的机器,我用的是liunx虚拟机 单独加载一块硬盘,我加载了一块20G的硬盘,然后用fdisk /dev/sdb进行分区,sdb1用来作为将来系统的/boot分区,所有100M就可以了,sdb2用来作为将来系统的/分区,我给了10G。然后将两个分区格式化为ext4系统。 mkdir /mnt/boot mkdir /mnt/sdc2 mou…

    Linux干货 2016-09-14
  • Linux文本处理三剑客之awk详解

    前言 awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出。awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能。处理对象一般纯文本文件或纯文本信息。 用法详解 基本语法 awk [options] 'progra…

    Linux干货 2015-04-29
  • raid各级别简介

    一. raid 是什么       RAID:(Redundant Array of indenpensive Disk) 独立磁盘冗余阵列: 磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存…

    Linux干货 2016-02-14
  • Package Manager

    Package Manager Package 管理工具的分类 rpm yum Source Code Install 管理工具的分类 前段管理工具:Debian:debRedhat,Suse…:rpm 前端管理工具:Debian:apt-getRedhat:yum,dnf RPM RPM是什么?RPM全称是RPM Package Manager…

    2016-03-27
  • 强大的vim编辑器

    vim编辑器 一、Vim编译器的概述 vi: Visual Interface,文本编辑器 v 文本:ASCII, Unicode v  文本编辑种类:      行编辑器: sed      全屏编辑器:nano,   &nbs…

    Linux干货 2016-08-12
  • Linux系统shell脚本

                                          &n…

    系统运维 2016-09-01