进程,内存,管理 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 ...
随机推荐
- How To Use These LED Garden Lights
Are you considering the lighting options for the outdoor garden? Depending on how you use it, LED ga ...
- AC3 Rematrix
当L R channel highly correlated时,AC3 encoder 使用rematrix技术压缩L/R的和和差. 原始信号为left,right,使用rematrix压缩信号为le ...
- Python记通用列表操作之切片!
______________________________________除使用索引(indexing)来访问单个元素外,还可使用切片 (slicing) 来访问特定范围内的元素. 切片适用于提取序 ...
- 启动docker报Failed to start Docker Application Container Engine.解决
[root@docker ~]# systemctl status docker.service● docker.service - Docker Application Container Engi ...
- 13.56Mhz下50欧姆阻抗匹配简易教程
阻抗匹配(impedance matching) 主要用于传输线上,以此来达到所有高频的微波信号均能传递至负载点的目的,而且几乎不会有信号反射回来源点,从而提升能源效益.信号源内阻与所接传输线的特性阻 ...
- python 小故事1
def test(a:str,b:int)->str: print(test.__annotations__) return a+str(b) def doc_print(): "&q ...
- 6_11 四分树(UVa297)<四分树>
一幅图有1024个点, 可以对图平均分成4块, 并且子图也可以再往下分, 直到一个子图表示一个点. f表示这块子图填满, p表示它还有4个子图, e表示没有子图(当然啦, 它也没有填满). 给定两个字 ...
- PAT甲级题解分类byZlc
专题一 字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...
- 前端——语言——Core JS——《The good part》读书笔记——附录三,四,五(JSLint,铁路图,JSON)
1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没 ...
- halo的工作目录,有一个是在代码里配置的,硬编码了
在HaloProperties.java中: /** * Work directory. */private String workDir = HaloConst.USER_HOME + " ...