进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速
一些基础
不同进程之间,进行数据访问
同一主机:pipe 管道
socket 套接字文件
signal 信号
shm shared memory
semaphore 信号量,一种计数器
不同主机:socket IP和端口号 (最底层的实现方式)
RPC remote procedure call
MQ 消息队列,如:Kafka,RabbitMQ,ActiveMQ
Linux系统状态的查看及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup
pstree命令:
pstree display a tree of processes

ps: process state
ps report a snapshot of the current processes
/proc 文件夹存放的都是目前正在运行的进程的数据,每一个进程,系统都会分配专门的文件夹来存放此进程相关的信息
ps 进程管理
支持三种选项
BSD选项
- 默认显示当前终端中的进程
- a 选项包括所有终端中的进程
- x 选项包括不链接终端的进程
- u 选项显示进程所有者的信息
- f 选项显示进程树,相当于 --forest
- k|--sort 属性 对属性排序,属性前加- 表示倒序
- o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
- L 显示支持的属性列表
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
一些值的含义
ni: nice值
pri: priority 优先级
psr: processor CPU编号
rtprio: 实时优先级
示例 ps axo pid,cmd,psr,ni,pri,rtprio
VSZ: Virtual memory SiZe,虚拟内存集,线性内存
RSS: ReSident Size, 常驻内存集 (真实内存)
常用组合:
- aux
- -ef
- -eFH
- -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
- axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
一些示例
- ps -p 3914 -o pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm //查看某个进程的一些属性
- ps -p 1244 -o comm= 使用其PID查找进程名称:
- ps -C sshd,bash 要以其名称选择特定进程,显示其所有子进程
- ps -C httpd,sshd -o pid= 查找指定进程名所有的所属PID
- ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head 查找占用最多内存和CPU的进程
- ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
pgrep 专门用于查找一些进程的,很简单默认只显示进程号,顶多显示名字 -a 可以把参数也显示
- pgrep [options] pattern
- -u uid: effective user,生效者
- -U uid: real user,真正发起运行命令者
- -t terminal: 与指定终端相关的进程
- -l: 显示进程名
- -a: 显示完整格式的进程名
- -P pid: 显示指定进程的子进程
示例 
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:虚拟机偷走的时间
top - 18:32:45 up 230 days, 2:01, 1 user, load average: 0.00, 0.00, 0.00
(1)18:45:02 当前时间
(2)up 230 days, 2:14, 系统连续运行时间
(3)1 user, 当前登录用户数
(4)load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到当前时刻的平均值。
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
(1)total 进程总数
(2)running 正在运行的进程数
(3)sleeping 睡眠的进程数
(4)stopped 停止的进程数
(5)zombie 僵尸进程数
Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
(1)0.8%us 用户空间占用CPU百分比
(2)0.5%sy 内核(系统)空间占用CPU百分比
(3)0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比
(4)98.5%id 空闲CPU百分比
(5)0.0%wa 等待输入输出的CPU时间百分比
(6)0.0%hi 硬件CPU中断占用百分比
(7)0.0%si 软中断占用百分比
(8)0.2%st 虚拟机占用百分比
Mem: 3974188k total, 2811108k used, 1163080k free, 144292k buffers
(1)total 物理内存总量
(2)used 使用的物理内存总量
(3)free 空闲内存总量
(4)buffers 用作内核缓存的内存量
Swap: 2097148k total, 46184k used, 2050964k free, 595092k cached
(1)total 交换区总量
(2)used 使用的交换区总量
(3)free 空闲交换区总量
(4)cached 缓冲的交换区总量
空闲内存 = 空闲内存总量free + 内核缓存的内存量 buffers + 缓冲的交换区总量cached
free 内存管理
free [OPTION]
- -b 以字节为单位
- -m 以MB为单位
- -g 以GB为单位
- -h 易读格式
- -o 不显示-/+buffers/cache行
- -t 显示RAM + swap的总和
- -s n 刷新间隔为n秒
- -c n 刷新n次后即退出
清理缓存

vmstat命令:虚拟内存信息 也有磁盘io
swap:
- si:从磁盘交换进内存的数据速率(kb/s)
- so:从内存交换至磁盘的数据速率(kb/s)
io:
- bi:从块设备读入数据到系统的速率(kb/s)
- bo: 保存数据至块设备的速率
iostat:统计CPU和设备IO信息
示例:iostat 1 10
iftop:显示带宽使用情况,EPEL源
示例:iftop -n -i eth1
glances命令 跨网络监控其他系统的参数
S: glances -s -B IPADDR IPADDR: 指明监听的本机哪个地址
C: glances -c IPADDR IPADDR:要连入的服务器端地址
可以通过防火墙策略,限定特定的地址可以连接我
dstat命令:系统资源统计,代替vmstat,iostat
- -c 显示cpu相关信息
- -C #,#,...,total
- -d 显示disk相关信息
- -D total,sda,sdb,...
- -g 显示page相关统计数据
- -m 显示memory相关统计数据
- -n 显示network相关统计数据
- -p 显示process相关统计数据
- -r 显示io请求相关的统计数据
- -s 显示swapped相关的统计数据

iotop
iostat 只能看出某个设备的ip情况
而iotop可以看到某个进程的io情况,显示某个进程在磁盘上的读写情况
lsof 查看某个挂载点或者设备是否被使用
- -a:列出打开该文件存在的进程 lsof -a filename
- -c<进程名>:列出指定进程所打开的文件 lsof -c pname
- -g:列出GID号进程详情
- -d<文件号>:列出占用该文件号的进程
- +d<目录>:列出目录下被打开的文件
- +D<目录>:递归列出目录下被打开的文
- -n<目录>:列出使用NFS的文件
- -i<条件>:列出符合条件的进程(4、6、协议、:端口、 @ip )
- -p<进程号>:列出指定进程号所打开的文件
- -u:列出UID号进程详情
- -h:显示帮助信息
- -v:显示版本信息。
- -n: 不反向解析网络名字
一些示例
指定进程号,可以查看该进程打开的文件 lsof -p 9527
查看指定程序打开的文件 lsof -c httpd
查看指定用户打开的文件 lsof -u root | more
查看指定目录下被打开的文件
lsof +D /var/log/ lsof +d /var/log/
参数+D为递归列出目录下被打开的文件,参数+d为列出目录下被打开的文件
- 查看所有网络连接
- lsof -i –n
- lsof -i@127.0.0.1
- 通过参数-i查看网络连接的情况,包括连接的ip、端口等以及一些服务的连接情况,例如: sshd等。也可以通过指定ip查看该ip的网络连接情况
- 查看端口连接情况
- lsof -i :80
- lsof -i@172.16.12.5:22
- 通过参数-i:端口可以查看端口的占用情况,-i参数还有查看协议,ip的连接情况等
- 查看指定进程打开的网络连接
- lsof -i –n -a -p 9527
- 参数-i、-a、-p等,-i查看网络连接情况,-a查看存在的进程,-p指定进程
- 查看指定状态的网络连接
- lsof -n -P -i TCP -s TCP:ESTABLISHED
- -n:no host names, -P:no port names,-i TCP指定协议,-s指定协议状态通过多个参数可以 清晰的查看网络连接情况、协议连接情况等
进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速的更多相关文章
- centos8:linux平台查看线程(ps/pstree/top)
一,ps/pstree/top命令所属的rpm包 pstree所属的包 [root@blog ~]# whereis pstree pstree: /usr/bin/pstree /usr/bin/p ...
- Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示
ps:将某个时间点的进程运行情况撷取下来 [root@www ~]# ps aux <==观察系统所有的进程数据 [root@www ~]# ps -lA <==也是能够观察所有系统的数据 ...
- Linux 进程管理 ps、top、pstree命令
ps命令:查看系统中正在运行的进程 ps 是用来静态地查看系统中正在运行的进程的命令.不过这个命令有些特殊,它的部分选项不能加入"-",比如命令"ps aux" ...
- 第十七章 程序管理与SELinux初探--进程、进程管理(ps、top)
一个程序被加载到内存当中运行,在内存内的那个数据就被称为进程(process).进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的类型存在.系统进程有哪些状态?不同状态会如何影响系统的运 ...
- 2017-06-30(ps pstree top kill w killall pkill)
ps(查看系统下所有进程) -a 显示一个终端的所有进程,除了会话引线 -u 显示进程的归属用户以及内存的使用情况 -x 显示没有控制终端的进程 -l 长格式显示,更加详细的信息 -e 显示所有的进程 ...
- LInux查看网速带宽及各进程占用情况:nethogs
安装: #Ubuntu: sudo apt-get install nethogs #CentOS: sudo yum install nethogs 使用: $ sudo nethogs
- Linux内存点滴 用户进程内存空间
Linux内存点滴 用户进程内存空间 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的. VIRT, Virtual Image (kb) RES, Re ...
- Linux用户管理 权限管理 内存管理 网络管理命令 (第四天)
默认添加的用户会自动加入和用户名一样的组中su 切换用户查看当前登陆的用户: whoami id`查看当前用户属于哪个组:groupsgroupadd 组名 添加组groupdel 组名 删除组gre ...
- 2万字|30张图带你领略glibc内存管理精髓(因为OOM导致了上千万损失)
前言 大家好,我是雨乐. 5年前,在上家公司的时候,因为进程OOM造成了上千万的损失,当时用了一个月的时间来分析glibc源码,最终将问题彻底解决. 最近在逛知乎的时候,发现不少人有对malloc/f ...
随机推荐
- Lingo简单入门,以及对线性规划做敏感性分析设置
Lingo中用!表示注释,注释结束用;表示,lingo不区分大小写,运行时会自动统一装换成大写 编程步骤: 1.推算出正确的模型 2.确定描述集,定义集合 3.确定变量 4.正确写出每个式子 常用函数 ...
- 【转】Java8 Stream 流详解
当我第一次阅读 Java8 中的 Stream API 时,说实话,我非常困惑,因为它的名字听起来与 Java I0 框架中的 InputStream 和 OutputStream 非常类似.但是 ...
- 小匠第一周期打卡笔记-Task01
一.线性回归 知识点记录 线性回归输出是一个连续值,因此适用于回归问题.如预测房屋价格.气温.销售额等连续值的问题.是单层神经网络. 线性判别模型 判别模型 性质:建模预测变量和观测变量之间的关系,亦 ...
- Django_Setings
""" Django settings for untitled1 project. Generated by 'django-admin startproject' u ...
- winform学习(4)控件的添加、显示和隐藏
窗体的添加.显示与隐藏 可以直接通过工具栏将某个控件直接拖动至UI界面(也可以在工具栏里双击某个控件) 也可以在代码里直接添加:窗体的标识.Controls.Add(控件标识符); Button my ...
- java基础(十一)之抽象类和抽象函数
1.抽象函数的语法特征2.抽象类的语法特征3.抽象类的作用 抽象函数 只有函数的定义,没有函数体的函数被称为抽象函数: abstract void func(); 抽象类 使用abstract定义的类 ...
- Can't bind to 'ngModel' since it isn't a known property of 'input'.
angular项目启动报错 Can't bind to 'ngModel' since it isn't a known property of 'input'. 原因:当前module模块未引入 ' ...
- Docker镜像加速,设置国内源
源地址设置 在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件) { "registry-mirrors": [ "https ...
- navicat导入.csv表格
我本地的navicat不知道啥情况,导入不了表格,然后把表格转为.csv的,然后导入就好了 1.表格另存为.csv格式的 2.打开Navicat,选择要导入的表,然后右键->导入向导,选择.cs ...
- A. DZY Loves Chessboard
DZY loves chessboard, and he enjoys playing with it. He has a chessboard of n rows and m columns. So ...