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
下一篇 2017-12-17

相关推荐

  • sed命令使用

    一、sed简介    sed是一种在线编辑器,一次处理一行内容。处理时,把当前处理的行存储在历史缓冲区,传给“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。sed主要用来自动编辑一个或…

    Linux干货 2016-08-12
  • Linux-文件系统挂载:mount的用法

     文件系统挂载  本章详细介绍文件系统挂载、卸载(mount,umount);  如何通过mount命令挂载使用文件系统、挂载常用参数、以及开机自动挂载(/etc/fstab)。    挂载描述:             挂载:将额外文件系…

    2017-06-19
  • 7-26第三课-帮助和bash基础命令

     命令:     1.获取帮助 内部命令     #help COMMAND     #man COMMAND 外部命令     # COMMAND …

    Linux干货 2016-07-29
  • 如何练好yum的一招一式

      工作时间越久,就越有这样一个深刻体会,一个新知识或者新的技能一个人学习起来并不会觉得吃力,反而要想把你学习的新知识或者新技能给讲清楚让普通人听得懂才是最难的,之前我写过一篇博客讲述linux下的RPM包管理器,今天写的练好yum的一招一式,同样都是都是在linux系统的软件包的安装、卸载、升级等功能的,为什么我们还需要yum那,记得一位大哲学家…

    Linux干货 2015-11-10
  • heartbeartv2实现lamp高可用-week17

    3、基于heartbeat v2 crm实现HA LAMP组合;要求,部署wordpress,用于编辑的文章中的任何数据在节点切换后都能正常访问; 拓扑: 环境: CentOS6.6NFS: 172.16.0.34 输出mysql数据目录ntp: 172.16.0.31 时间服务器node1: 172.16.0.32 heartbeart+httpd+php…

    Linux干货 2017-05-23
  • 请使用命令行展开功能来完成以下练习

    (1)、创建/tmp目录下的:ac, ad, bc, bd ]# mkdir -p /tmp/{a,b}_{c,d} 或者: ]# touch /tmp/{a,b}_{c,d} (2)、创建/tmp/mylinux目录下的: ]# mkdir -pv /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysco…

    Linux干货 2016-11-06