遂宁
文档目录:
---------------------------------------分割线:正文--------------------------------------------------------
一、lsof:查看进程打开的文件
命令详解:
lsof=list open files,列举系统中已经被打开的文件,根据文件可以找到对应的进程,也可以根据进程找到打开的文件
1、显示使用文件的进程
lsof /var/log/messages #显示使用文件的进程
COMMAND:命令,即进程名
PID:进程号
USER:进程的所有者
FD:文件描述符,0-标准输出,1-标准输入,2-标准错误,u-文件被打开并处于读取/写入模式,r-表示该文件被打开并处于只读模式,w-表示该文件被打开并处于写入模式
TYPE:文件类型,REG(regular)为普通文件
DEVICE:磁盘的名称
SIZE/OFF:文件的大小
NODE:索引节点
NAME:文件名称
2、指定进程所打开的文件
lsof -c rsyslogd #指定进程所打开的文件
3、指定进程号所打开的文件
lsof -p 57238 #指定进程号所打开的文件
4、监听指定的协议、端口和主机等信息,显示符合条件的进程信息。
lsof -i #查看所有进程
lsof -i tcp #显示所有tcp网络连接的进程信息
lsof -i :22 #显示端口为22的进程,常用
lsof -i tcp:22 #显示同事满足TCP和端口22的进程
5、显示指定用户使用的文件
lsof -u root #使用-u指定用户使用的文件
6、显示所有socket文件
lsof -U #使用-U显示所有socket文件
二、uptime:显示系统的运行时间及负载
命令详解:
输出当前的系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等信息
1、uptime #显示系统运行时间及负载信息
三、free:查看系统内存信息
命令详解:
free命令用于显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存等
total-代表内存总大小
used-表示使用的实际内存大小
free-剩余物理内存大小(未分配、纯剩余)
share:共享内存大小、无需关注
buff/cache:缓冲(缓冲如:cpu到io硬盘,硬盘写入速度慢 需要先将一部分数据缓存到内存)和缓存(如:io硬盘到cpu,从硬盘读取 需要先把数据临时放内存里面 大小
available:实际可使用的内存大小;(free buff/cache只分配,但未使用的内存)
1、查看系统内存
free #默认显示字节数
free -m #以MB为单位显示内存使用情况
free -h #根据实际大小自动转换成KB、GB、MB单位显示
真实剩余内存=free buff/cache=489M 317M=806M
换算关系:
total=used free buff/cache
available=free buff/cache(分配但未使用的内存)
其中:used已使用内存,和buff/cache被占用的内存没有关系;
2、定时查询内存:
free -h -s 10 #使用-s选项定时刷新内存的使用情况,单位为秒
四、iftop:动态显示网络接口流量信息
命令详解:
iftop是一款实时流量监控工具,可用于监控TCP/IP连接等,必须用root用户身份运行。
安装方法参考:https://www.cnblogs.com/chaichuan/p/4442610.html
1、不接受任务参数启动iftop命令监控流量
iftop #默认监听第一块网卡,-i可以指定网卡
界面上显示的类似刻度尺的刻度范围,是以标尺的形式显示流程图形的长条
中间的<=或>=两个箭头,表示的是流量的方向
TX:发送流量
RX:接收流量
TOTAL:总流量
Cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去2s、10s、40s的平均流量
2、常用命令组合
iftop -nNBP #-n不进行DNS解析,-N数字形式端口号,-P显示端口号,-B,以字节流为单位,默认为bit显示流量
五、vmstat:虚拟内存统计
命令详解:
vmstat=virtual memory statistics,使用vmstat可以对操作系统的内存信息、进程状态和CPU活动等进行监视,但只能对系统的整体情况进行统计,无法对某个进程深入分析。
1、显示虚拟内存的使用情况
vmstat #省略-间隔时间与次数参数,仅显示一次报告后退出
vmstat 5 #表示每5秒更新一次输出信息,循环输出,ctrl c退出
vmstat 5 6 #表示每5秒更新一次输出信息,统计6次后停止输出
第1列:procs
r-运行和等待CPU时间片的进程数,b-正在等待资源的进程数
第2列:memory
swpd:表示使用虚拟内存的大小
free:表示当前空闲的物理内存数量
buff:表示buffers的内存数量
cache:表示cache的内存数量
第3列:swap
si(swap in):列表示由磁盘调入内存,也就是内存进入内存交换区的数量
so(swap out):列表示由内存调入磁盘,也就是内存交换区进入内存的数量
第4列:I/O项显示磁盘读写状况
bi列表示从块设备读入数据的总量(即读磁盘)(块/s)
bo列表示写入块设备数据的总量(即读磁盘)(块/s)
第5列:system显示采集间隔内发生的中断数
in列表示在某一时间间隔中观测到的每秒设备中断数
cs列表示每秒产生的上下文切换次数
第6列:CPU项显示了CPU的使用状态
us列显示了用户进程消耗的CPU时间百分比
sy列显示了系统(内核)进程消耗的cpu时间百分比
id列显示了CPU处在空闲状态的时间百分比
wa列显示了I/O等待所占用的CPU时间百分比
st列显示了虚拟机占用的CPU时间的百分比
2、显示活跃和非活跃内存
vmstat -a 2 5 #-a内容增加了inact与active选项,分别代表非活跃与活跃内存
3、查看内存使用的详细情况
vmstat -s
4、查看磁盘的读/写
vmstat -d
5、查看dev/sda1磁盘的读写
vmstat -p /dev/sda1
reads:来自该分区的读的次数
reads sectors:来自于该分区的读扇区的次数
writes:来自于该分区的写的次数
requested writes:来自于该分区的写请求的次数
六、mpstat:CPU信息统计
命令详解:
mpstat=multiprocessor statistics,一种实时监控工具,输出cpu的统计信息,存放在/proc/stat,可查询所有cpu平均信息, 也可以查特定的cpu信息
mpstat的最大特点:可以查看多核cpu中每个计算核心的统计数据,而vmstat只能查看系统整体的cpu情况
1、显示cpu统计信息
mpstat #省略-间隔时间与次数参数,仅显示一次报告后退出
mpstat 5 6 #表示每5秒更新一次输出信息,统计6次后停止输出
第一列:当前时间
CPU:all表示所有cpu,0表示第一个cpu
%user:用户进程消耗的CPU时间(%)
%nice:nice值为负进程的CPU时间(%)
%sys 核心时间(%)
%iowait 硬盘IO等待时间(%)
%irq 硬中断时间(%)
%soft 软中断时间(%)
%steal 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
%guest 显示运行虚拟处理器时CPU花费时间的百分比
%idle CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)
2、显示指定cpu信息的统计
mpstat -P 0 #显示第一个cpu的信息
七、iostat:I/O信息统计
命令详解:
iostat=I/O statistics,主要功能是对系统磁盘I/O操作进行监控,它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况,同vmstat命令一样,不能对某个进程进行深入分析,仅对整体情况进行分析
1、iostat #省略-间隔时间与次数参数,仅显示一次报告后退出
%user:CPU处在用户模式下的时间百分比
%nice:CPU处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比
device:磁盘名称
tps:每秒钟发送到的I/O请求数
Blk_read/s:每秒读取的block数
Blk_wrtn/s:每秒写入的block数
Blk_read:读入的block总数
Blk_wrtn:写入的block总数
2、定时显示所有信息
iostat 2 3 #每2秒更新一次信息,共显示3次
3、只显示磁盘统计信息
iostat -d
iostat -d -k #-k以KB为单位显示数据
4、查看扩展信息
iostat -d -x -k #-x显示扩展信息
rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
r_await:每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。