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
下一篇 2015-06-01

相关推荐

  • 第三天作业

    1、列出当前系统上所有已经登录的用户的用户名。注意:同一个用户登录多次,则只显示一次即可 [root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq [root@localhost ~]# who (unknown) :0         &nbsp…

    Linux干货 2016-08-30
  • linux下小练习(2)

    1、编写脚本/bin/per.sh,判断当前用户对指定的参数文件,  是否不可读并且不可写                         2、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充 许…

    Linux干货 2016-08-15
  • 关于大型网站技术演进的思考(七):存储的瓶颈(7)

    原文出处: 夏天的森林  本文开篇提个问题给大家,关系数据库的瓶颈有哪些?我想有些朋友看到这个问题肯定会说出自己平时开发中碰到了一个跟数据库有关的什么什么问题,然后如何解决的等等,这样的答案没问题,但是却没有代表性,如果出现了一个新的存储瓶颈问题,你在那个场景的处理经验可以套用在这个新问题上吗?这个真的很难说。 其实不管什么样的问题场景最…

    2015-03-11
  • 源码编译nginx和Nginx的特性,配置文件指令说明

    nginx的官方站点 www.nginx.org Nginx:engine X Tenginx:Taobao enginx libevent:高性能的网络库 epoll(); Nginx特性  模块化设计,较好扩展性:但不支持模块的动态装卸载;Tenginx支持;  高可靠性   master –> …

    Linux干货 2017-04-30
  • heartbeat实现高可用集群(1)

    环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.80 daemon httpd nfs 192.168.1.15 配置HA集群的前提 1.节点时间必须同步,使用ntp协议实现 2.节点间需要通过主机互相通信,必须解析主机名至IP地址 a.建议名称解析功能能使用hosts文件实现 b.通信中使用的名…

    Linux干货 2017-11-03
  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@CentOS7 ~]# fdisk /dev/sdb Command (m for help): n Select…

    Linux干货 2016-08-22