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)
上一篇 2017-12-17 16:15
下一篇 2017-12-17 17:48

相关推荐

  • Linux启动流程

    内核级别: 1、POST开机加电自检 BIOS加载CMOS信息并进行开机自检,检测硬件设备是否正常并进行硬件设备初始化 2、Boot Sequence(BIOS):定义设备启动顺序 BIOS定义设备启动顺序,并读取启动设备数据加载硬盘上的第一个扇区MBR。 3、Boot Loader(MBR):bootloader功能实现 Boot Loader提供一个菜单…

    Linux干货 2016-11-23
  • DHCP简介及简单实践

    一、引言 DHCP全称Dynamic Host Configure Protocol,动态主机配置协议,用于向网络中的计算机分配IP地址及一些TCP/IP配置信息。DHCP提供了安全,可靠且简单的TCP/IP网络设置,避免了TCP/IP网络地址的冲突,同时大大降低了工作负担。 二、DHCP工作流程 DHCP采用C/S架构,即Server/Client,它的简…

    Linux干货 2017-01-10
  • puppet部署多台服务器

    利用puppet实现自动化部署 配置前准备:   图中:蓝线表示各个服务器之间通信      红线表示puppetmaster主机向各个agent主机部署信道 A主机puppet-master主机:192.168.126.129 B主机做两种服务:keepalived高性能和nginx反代  &nb…

    2017-07-23
  • bash的特性和目录管理命令

    bash的特性和目录管理命令 bash特性     1. 命令补全机制: 所谓的命令补全,就是当输入命令的前几个字符的时候,按下tab,此时,bash根据输入的字符串,到path路径下进行寻找,把找到的且能唯一根据这个字符串标识的命令,予以补全。 如果根据这个字符串能在一个目录下面找到多个相同的命令,则再按一下tab就能列出所有…

    Linux干货 2016-10-29
  • TCP详解

    TCP协议详解   TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个使用TCP/IP协议的协议集合。他取代了OSI七层模型,成为事实上的应用于实际的模型。 TCP/IP协议与OSI协议的关系如下:   各层的作用如下: TCP特性: 工作在传输层面向连接协议 全双工协议 半关闭 错误检查 将数据打包成段,排序 确认机制 …

    2017-09-02
  • 磁盘及文件系统管理

    磁盘管理     MBR:master boot record 主引导记录。位于磁盘的0磁道0扇区共512字节,独立于操作系统之外的。512字节的划分               …

    Linux干货 2016-08-25