linux系统进程管理

进程与线程

1.进程 :是系统资源管理的最小单位
2.线程 :是程序执行的最小单位
3.线程比进程小
4.线程和进程的最大区别在于线程完全共享相同的地址空间,运行在同一地址上
5.多个程序在同一时间请求,CPU根据”先进先出” 原则执行线程。而其他的线程则在线程队列中等待

一个正在执行的进程称为一个任务,一个任务可以包含多个进程,因此对任务的控制即是对正在运行的进程进行控制

Linux系统最高进程
Linux系统启动后即产生了第一个进程,即systemd进程。此进程的PID号(进程号)为1, 所有子进程都是通过(父进程)systemd进程衍生 (fork)的,如果某个进程父进程意外结束,子进程会以systemd作为父进程


查看进程信息与状态 ps

ps [options]

a显示当前终端下所有用户的进程
x选择所有不在当前终端下的进程。
u查看进程的UID或账户名
e 选择所有的进程
f 列示完整的列表
l 显示进程的所属者,进程号和父进程号

# ps aux | head -n5
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.3 193628  6764 ?        Ss   09:15   0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    09:15   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    09:15   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   09:15   0:00 [kworker/0:0H]

表头释义:

USER:程序是以哪个用户名的名义运行
PID:进程号,PID号范围为1-32768,至最高值,则循环。
%CPU:进程的CPU使用率
%MEM:进程的MEM使用率
VSZ:进程所使用的虚拟内存大小(Virtual Size)
RSS:进程使用的驻留集大小或实际内存的大小 (Kbytes)
TTY:进程在哪个TTY执行的
STAT:进程的状态
START:进程启动时间及日期
TIME:进程使用的总CPU时间
COMMAND:正在执行的命令及参数

# ps -elf | head -5
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 48407 ep_pol 09:15 ?        00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
1 S root          2      0  0  80   0 -     0 kthrea 09:15 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 09:15 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 09:15 ?        00:00:00 [kworker/0:0H]

表头释义:

F:标记.1.进程forked(交叉),但未执行exec调用 4.用特权用户权限
S:进程状态,以1个字符进行表示
PID:执行此进程的PID
PPID:此进程的父进程号
C:进程CPU的使用率,为整数
PRI:进程优先级编号
NI:优先级
ADDR:进程所在内存地址
SZ:实际占用的物理内存大小
WCHAN:使用kernel函数的进程处于休眠状态
STIME:进程启动的时间
TTY:进程在哪个终端执行
TIME:进程执行所花费的时间
CMD:执行的命令及参数


生成新报表 ps

# ps
   PID TTY          TIME CMD
  2417 pts/0    00:00:01 bash
  4568 pts/0    00:00:00 ps
  
# ps -o pid,pcpu,nice,comm,tty,time
   PID %CPU  NI COMMAND         TT           TIME
  2417  0.0   0 bash            pts/0    00:00:01
  4567  0.0   0 ps              pts/0    00:00:00
 
#显示PID,命令,pri优先级(数字越大,优先级越高),nice优先级,realtime优先级
# ps xo pid,cmd,pri,nice,rtprio | head -4
   PID CMD                         PRI  NI RTPRIO
     1 /usr/lib/systemd/systemd --  19   0      -
     2 [kthreadd]                   19   0      -
     3 [ksoftirqd/0]                19   0      -

看系统占用内存最高的进程的TOP10
ps aux | sort -rnk4 | head -10 | awk '{print $4,$11}'
//r降序,n 数值排序,-k以文本的那一列进行判断

查看系统占用CPU最高的进程的TOP10
ps aux | sort -rnk3 | sed '/%CPU/d' | head -n10 | awk '{print $3,$11}'

杀掉僵尸进程
ps –eal | awk ‘{if ($2 == “Z”){print $4}}' | xargs kill -9

根据进程PID或命令互查
ps -p 1236 -o comm=
ps -C sleep -o pid=

查看进程树并显示进程属主和进程ID(可不带用户名)
pstree -lpu apache #l 长格式(显示名称和PID),p显示PID,u显示进程属主
pgrep -lo httpd #l 长格式,oldest,newest
pgrep -ln httpd #查看httpd最新开启的进程
pgrep -l httpd
pidfo bash #显示bash进程的PID


类似windows的资源管理器,实时显示当前系统资源情况 top

top输出:
第一行:1.当前系统时间 2.uptime时间3.当前登入系统的账户总数 4.当前系统1、5、15分钟的系统负载值(即任务队列的平均长度,数值超过核心数即为负载过大,按1展开显示各个CPU的核心状态)


列出进程所打开的文件的信息 lsof

# lsof -u alex| head -n4
COMMAND  PID USER   FD   TYPE DEVICE  SIZE/OFF       NODE NAME
bash    5300 alex  cwd    DIR  253,0      4096     393217 /root
bash    5300 alex  rtd    DIR  253,0      4096          2 /
bash    5300 alex  txt    REG  253,0    960392     394955 /usr/bin/bash

lsof输出:
1.COMMAND:进程的名称 2.PID:进程标识符 3.USER:进程所有者 4.FD:文件描述符,应用程序通过文件描述符识别该文件 5.TYPE:文件类型 6.DEVICE:指定磁盘的名称 7.SIZE:文件的大小 8.NODE:索引节点(文件在磁盘上的标识) 9.NAME:打开文件的确切名称

查看文件系统阻塞 lsof /boot
查看打开指定文件的所有进程 lsof /var/log/message
显示指定目录下被进程打开的文件 lsof +d /var/log
查看端口号被哪个进程占用 lsof -i :3306
查看用户打开哪些文件 lsof –u username
查看进程打开哪些文件 lsof –p 4838
查看远程已打开的网络链接 lsof –i @192.168.0.128
列出除了某个用户外被打开的文件 lsof -u root
列出某个程序所打开的文件 lsof -c cron
列出多个PID所打开的文件 lsof -p 123,234,111
列出某个用户组所打开的文件 lsof -g 0


进程/终端控制 kill

 # kill -19 2345    #挂起PID为2345的进程
 # kill -9 3245      #强行终止PID为3245的进程
 # killall bash        #终止bash同名程序
 # killall5 -9          #终止所有进程,慎用
 # pkill -t tty1       #终止tty1终端的连接

任务优先级 nice
在程序启动时直接赋予相关进程的优先级,最高的优先级指数是-20,最低是19
还记得ps -elf的第八列是任务优先级信息吗?

如对app脚本设置最低优先级

# nice 19 ./app &
#ps -elf  | grep app |grep -v grep | awk '{print $5}'

#更改PID为2784的进程优先级为最高优先级renice

# renice -20 2784

输出CPU和磁盘I/O相关的统计信息iostat

# iostat
Linux 3.10.0-514.el7.x86_64 (centos7)   2019年05月19日  _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.13    0.01    0.00   99.84

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               4.79       126.83         6.41     242746      12276
scd0              0.01         0.03         0.00         54          0
dm-0              5.11       113.05         6.38     216373      12220

表头释义:

第1行: 1.kernel版本(完整的主机名称)2. 报告生成日期3. 系统架构(CPU数)
第3行avg-cpu CPU平均值
%user 在用户运行进程所占用的CPU百分比
%nice 进程优先级操作所占用的CPU百分
%system 系统级别(kernel)运行所使用的CPU百分比
第6行1. tps 每秒钟传输的IO请求的数量 Blk_read/s 块设备每秒钟读取的数量 Blk_wrtn/s 块设备每秒钟写入的数量Blk_read 块设备读出的总数 blk_wrtn 块设备写入的总数

>每2秒显示一次设备统计信息,输出6次 iostat -d 2 6
每2秒以K为单位显示一次设备统计信息,且显示 LVM映射名称,共计10次 iostat -dNk 2 10

>监控CPU、内存、虚拟内存交换、IO读写等各种情况的使用 vmstat
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1408656  19508 309476    0    0    10     1   18   18  0  0 100  0  0

表头释义:

Proc进程:1.r 表示运行队列,2.b 阻塞队列
Memory内存:1.swap 当前swap使用k数的情况2.free 当前物理内存空闲的k数buff 内存使用的buff总数,一般为块设备操作,文档权限记录等 3.cache 内存使用的cache总数,一般打开文件,运行程序等使用
swq 虚拟内存1. si 每秒钟从磁盘读入到swap的大小,不可长期>0 2. so 每秒钟从swap写入到磁盘的大小,不可长期>0
IO块设备:1.bi 块设备每秒接收到的块数 2.bo 块设备每秒发送的块数
System系统情况:1.in 系统的每秒中断数总计(含时钟中断) 2.cs 每秒上下文切换的次数(系统调用,环境变化等)
cpu情况:1.us 用户(及优先级)占用CPU时间 2.sy 系统(kernel级)占用CPU时间 3.id 闲置CPU时间 4.wa io等待CPU时间 6.st 一个虚拟机占用的CPU时间(
如kvm)

▪procs:r这一列显示了多少进程在等待cpu,b列显示多少进程正在不可中断的休眠(等待IO)
▪ memory:swapd列显示了多少块被换出了磁盘(页面交换),剩下的列显示了多少块是空闲的(未被使用),多少块正在被用作缓冲区,以及多少正在被用作操作系统的缓存。

▪ swap:显示交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。
▪ io:显示了多少块从块设备读取(bi)和写出(bo),通常反映了硬盘I/O。
▪ system:显示每秒中断(in)和上下文切换(cs)的数量。
▪ cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO。

每2秒采样1次,总计10次 #vmstat 2 10

系统性能分析工具 sar


PS:

linux知识必备

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容

  • ps组合命令 ps -aux 在linux中可以使用ps命令查看进程配合grep命令可以快速的查找到服务的进程 常...
    Sirius_KP阅读 574评论 0 0
  • 时间:2018-05-30 姓名:魏文应 一、进程 程序与进程:程序是静态的(文件),进程是动态的(运行的程序)。...
    秋的懵懂阅读 846评论 0 0
  • linux系统性能监视命令,经过百度谷歌,加上各渠道获得,查找到相关命令汇集,望能学有所收获 ...
    _王子_阅读 1,351评论 3 13
  • 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念...
    Zhang21阅读 1,944评论 0 12
  • 早年作品,限时即兴,文字游戏,草稿未改。 《黑帮gang》 钢\刀锋和枪膛\拳头与心肠\你要做就做好钢\恨破膛\爱...
    车槐阅读 672评论 12 15