linux中进程及内存管理工具

pstree 显示进程树 ({}是线程)

选项-p #显示进程编号

pstree username #查看指定用户的进程

centos7中可以使用选项-s来查看指定进程的父子进程

 

ps (默认显示当前终端运行的进程)

支持三种选项:

1、UNIX选项

-C cmdlist 指定命令(允许同时指定多个命令)

-L 显示线程

-e: 显示所有进程,相当于-A

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

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

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

-u userlist 指定有效的用户ID或名称(发起者)

-U userlist 指定真正的用户ID或名称(执行者)

-g gid或groupname 指定有效的gid或组名称

-G gid或groupname 指定真正的gid或组名称

-p pid 显示指定pid的进程(支持多个)

–ppid pid 显示属于pid的子进程

-M 显示SELinux信息,相当于Z

-t 指定终端号

2、BSD选项

a 选项包括所有终端中的进程

x 选项包括不链接终端的进程

u 选项显示进程所有者的信息

f 选项显示进程树,相当于 –forest

k|–sort 属性 对属性排序,属性前加- 表示倒序

o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem

L 显示支持的属性列表

常用组合-例:

ps axo pid,cmd,%cpu –sort %cpu

ps -C vim o pid,cmd,%mem

ps aux

3、GNU选项

–sort

–ppid

 

ps输出属性说明

VSZ 虚拟内存(系统分配的内存大小)

RSS 实际内存(进程实际可用的内存大小)

STAT:进程状态

R:running

S: interruptable sleeping

D: uninterruptable sleeping

T: stopped

Z: zombie

+: 前台进程

l: 多线程进程

L:内存分页并带锁

N:低优先级进程

<: 高优先级进程

s: session leader,会话(子进程)发起者

ps示例

列出有效组名称(或会话)所拥有的所有进程:

ps -fg mysql ps -fG 27

以父进程ID来显示其下所有的进程,如显示父进程为1154的 所有进程:

ps -f –ppid 1234

查看进程的PID,PPID,用户名和命令:

ps -eo pid,ppid,user,cmd

自定义格式显示文件系统组,ni值开始时间和进程的时间:

ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime

查找指定进程名所有的所属PID,在编写需要从std输出或文 件读取PID的脚本时这个参数很有用:

ps -C httpd,sshd -o pid=

检查一个进程的执行时间

ps -eo comm,etime,user | grep nginx

查找占用最多内存和CPU的进程:

ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head

ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%cpu | head

使用watch实用程序执行重复的输出以实现对就程进行实时的 监视,如下面的命令显示每秒钟的监视:

watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=- %mem | head’

 

pidof cmd   #查看此进程下的所有子进程

说明:此命令可以作为判断进程是否运行正常的手段

 

uptime

显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)

系统平均负载: 指在特定时间间隔内运行队列中的平均进程数

通常每个CPU内核的当前活动进程数不大于3,那么系统 的性能良好。如果每个CPU内核的任务数大于5,那么此 主机的性能有严重问题

如果linux主机是1个双核CPU,当Load Average 为6的 时候说明机器已经被充分使用

 

top:有许多内置命令:

排序:

P:以占据的CPU百分比,%CPU

M:占据内存百分比,%MEM

T:累积占据CPU时长,TIME+

首部信息显示:

uptime信息:l命令

tasks及cpu信息:t命令

cpu分别显示:1 (数字)

memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

保存文件:W

 

栏位信息简介

us:用户空间

sy:内核空间

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

 

选项:

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

-b: 全部显示所有进程

-n #: 刷新多少次后退出

 

ltop命令

选项:

-d #: 指定延迟时间;

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

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

子命令:

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

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

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

t: 显示进程树

 

vmstat命令:虚拟内存信息(以内存为参照)

vmstat 1 5   #1秒显示1次,显示5次

输出说明:

procs

r:可运行(正运行或等待运行)进程的个数,和核心数有关

b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

memory

swpd: 交换内存的使用总量

free:空闲物理内存总量

buffer:用于buffer的内存总量

cache:用于cache的内存总量

swap:

si:从磁盘交换进内存的数据速率(kb/s)

so:从内存交换至磁盘的数据速率(kb/s)

io:

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

bo: 保存数据至块设备的速率

system

in: interrupts 中断速率,包括时钟

cs: context switch 进程切换速率

选项

-s: 显示内存的统计数据

 

iostat  #统计CPU和设备IO信息

iostat 1 10  #1秒显示一次,10次结束

 

glances 远程监控主机状态

服务器模式:

glances -s -B IPADDR

IPADDR: 指明监听的本机哪个地址

不加-B 监听在所有地址

客户端模式:

glances -c IPADDR

IPADDR:要连入的服务器端地址

 

iotop命令是一个用来监视磁盘I/O使用状况的top类工具

iotop输出说明

第一行:Read和Write速率总计

第二行:实际的Read和Write速率

第三行:参数如下:

线程ID(按p切换为进程ID)

优先级

用户

磁盘读速率

磁盘写速率

swap交换百分比

IO等待所占的百分比

线程/进程命令

iotop常用参数

-o, –only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。

-b, –batch非交互模式,一般用来记录日志。

-n NUM, –iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。

-d SEC, –delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。

-p PID, –pid=PID指定监测的进程/线程。

-u USER, –user=USER指定监测某个用户产生的I/O

-P, –processes仅显示进程,默认iotop显示所有线程。

-a, –accumulated显示累积的I/O,而不是带宽。

-k, –kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用

-t, –time 加上时间戳,非交互非模式

-q, –quiet 禁止头几行,非交互模式,有三种指定方式

-q 只在第一次监测时显示列名

-qq 永远不显示列名

-qqq 永远不显示I/O汇总

交互按键

left和right方向键:改变排序

r:反向排序

o:切换至选项–only

p:切换至–processes选项

a:切换至–accumulated选项

q:退出

i:改变线程的优先级

 

kill命令(

显示当前系统可用信号

kill –l或trap -l

常用信号

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

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

3) SIGQUIT:相当于ctrl+\

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

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

18) SIGCONT:继续运行

19) SIGSTOP:后台休眠

0  检查进程是否正常工作

 

指定信号的方法:

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

(2) 信号完整名称:SIGHUP

(3) 信号的简写名称:HUP

 

例:

按pid

kill -SIGNAL pid

按名字

Killall -SIGNAL cmd

按模式

pkill

-SIGNAL

-u uid: effective user,生效者

-U uid: real user,真正发起运行命令者

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

-l: 显示进程名(pgrep可用)

-a: 显示完整格式的进程名(pgrep可用)

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90203

(0)
oranixoranix
上一篇 2017-12-17 16:15
下一篇 2017-12-17 17:48

相关推荐

  • N21天天第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS主机按以下顺序启动 1、POST加电自检 2、BIOS读取CMOS中的BIOS设置的参数来识别基础硬件,寻找到启动设备 3、MBR 1)读取启动设备MBR中前446字节的bootloader 2)读取MBR后的扇区用来识别grub以及内核kernel所在的区域 3)启动g…

    Linux干货 2016-09-26
  • 作业-第二周

    1、linux常用文件管理命令 ls rm chmod touch mv cp 2、echo $? 如果返回0则成功,其他失败 3、 mkdir /tmp/{a,b}_{c,d} mkdir -p /tmp/mylinux/bin /tmp/mylinux/boot/ /tmp/mylinux/boot/grup /tmp/mylinux/dev \ /tm…

    Linux干货 2016-06-23
  • OSI七层模型

      OSI模型的七层结构 首先,OSI是什么呢?OSI(Open System Interconnection),OSI是一个开放性的通行系统互连参考模型,是一个协议规范。它把网络协议从逻辑上分为了7层。每一层都有相关、相对应的物理设备。OSI七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要…

    2017-09-02
  • 第十周:Linux系统启动流程及shell脚本练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 一张图足以说明一切: 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;   (1) 为硬盘新建两个主分区;并为其安装grub;   (2) 为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供rootfs;   (3)…

    Linux干货 2016-11-30
  • Linux基础学习总结(六)

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

    2016-11-06
  • Linux磁盘管理高级

    Linux磁盘管理高级 LVM Btrsh LVM 逻辑卷管理(LVM)指系统将物理卷管理抽象成一个逻辑卷,包括重新设定文件系统的大小,LVM可以弹性的更改LVM的容量,通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量。 LVM还有快照的功能,快照区与原本的LV共用很多PE的区块,因…

    Linux干货 2016-09-09