Linux系统监控篇

性能调优篇

ps 命令监控进程 #只显示当前终端的两个选项

ps -l #查看进程更多的信息,当一个进程的PPID和PID 相同时,PPID为子进程,PID为父进程

ps -ef |more #查看所有进程

ps aux | more #查看所有进程

PID : 进程ID号

TIME: 从进程开始执行,该进程消耗的总 CPU 时间。
%CPU:前一秒的 CPU 使用情况,用百分比表示所有 CPU 的总和
VSz : 进程占用的虚拟内
RSS: 进程占用实际物理内存的量

top 实时监控工具
top -n 1 #显示一次进行退出,静态查看
PR:优先级
NI:nice值(负值表示高优先级,正值表示低优先级m)
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
S:Process status 进程状态
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
free命令监控内存

free -m / free -h

Free 命令显示剩余内存,物理内存和 swap 交换分区容量。-s 1 选项可以每一秒钟更新显示一次。

如果 buff/cache和available列的值接近0时,则代表可用内存不足

监控文件系统的使用lsblk -fp/df -Th

lsblk -p 命令列出设备的完整路径,UUID 和挂载点,以及分区中文件系统类型。如果设备没有挂载文件系统,则挂载点显示为空白。

访间sysstat软件包工具

Sysstat软件包提供了 Linux 系统监控工具集。

CPU的统计数据和I/0 的监控

下列工具是通过 sysstat 软件包提供的iostat: 报告 CPU的统计数据和I/0 的统计数据。iostat 命令可以加入时间间隔和计数次数。

yum -y install sysstat
用法:用法:iostat [选项] [<时间间隔>] [<次数>]
命令参数:

-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
iosata
iosata 1 4 #实时监控 1秒钟监控一次,总共4次
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU
device:磁盘名称
tps:每秒钟发送到的I/O请求数
Blk_read/s:每秒读取的block数
Blk_wrtn/s:每秒写入的block数
Blk_read:读入的block总数
Blk_wrtn:写入的block总数
iostat 1 5:间隔1秒,总共显示5次
iostat -d 2:每隔2秒,显示一次设备统计信息
iostat -d 2 3:每隔2秒,显示一次设备统计信息.总共输出3次
iostat -x sda sdb 2 3:每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次
iostat -p sda 2 3:每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次
iostat -m:以M为单位显示所有信息
mpstat 监控:每个处理器活动的统计数据
mpstat 
mpstat -P ALL 1 3 #监控所有CPU,1秒钟监控一次,总共监控3次
参数具体含义:
%usr:表示用户态所使用 CPU 的百分比
%nice:示使用 nice 命令对进程进行降级时 CPU 的百分比
%sys:表示内核进程使用的 CPU 百分比
%iowait:表示等待进行 I/O 所使用的 CPU 时间百分比
%irg:表示用于处理系统中断的 CPU 百分比
%soft:表示用于软件中断的 CPU 百分比。
%steal:虚拟机强制CPU等待的时间百分比,虚拟CPU的无意识等待时间百分比
%guest:虚拟机占用CPU时间的百分比
%idle:CPU空闲时间,越高利用率代表越低
pidstat 命令通过进程或线程报告 CPU,磁盘 I0,内存使用情况。
-p 选项可以指定某个进程号码
pidstat 1 3 #1秒钟监控一次,总共监控3次
pidstat -p pid号 1 3 
Pidstat 重要选项
-w 查看进程的上下文切换数
-t 查看线程的上下文切换数
-u 查看 CPU 相关信息(默认值)
-d 查看磁盘信息(IO)
使用vmstat工具报告虚拟内存使用有况

vmstat 命令是用于排除与内存相关的性能问题。它由 procps-ng 软件包提供。它可以有两个选项,一个是时间间隔,一个是统计次数。默认情况下,报告中以 Ki 为单位可以通过使用-S 选项加入具体的单位

vmstat 1 30 #一秒钟监控30次 
vmstat -S m 1 3 #
详解:
procs(进程)    
r:指正在运行进程的数量或者正在等待运行进程的数量,若大于CPU数量,资源紧张
b:不可中断式进程睡眠数量
memory :内存
free:空闲内存大小
buff:缓存,指源数据缓存,已用的buff大小,对块设备的读写进行缓冲
cache:缓存,真实和文件数据打交道,指数据自己缓存,已用的cache大小,文件系统的cache
swap:正在使用虚拟的内存大小,单位k
si:换入,每秒从交换区写入内存的大小(单位:kb/s)
so:换出,每秒从内存写到交换区的大小
当这两个值比较高,说明内存不足
io
bi:读磁盘
bo:写磁盘
system
in:每秒中断数,包括时钟中断
cs:每秒上下文切换
注意当in,cs这两个值越大,会看到由内核消耗的cpu时间会越多
cpu
us:用户进程执行消耗cpu时间(user time),us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了
sy:系统进程消耗cpu时间(system time),sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。
id:是否空闲,高表示空闲多
wa:等待IO时间,Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈
st:从虚拟设备中获得的时间( %)

利用sar命令生成系统活动报告

Sar 命令从内核计算器收集指标,并有一个代理,它按预定时间执行以记录系统活动这个命令还可以收集系统状态的瞬时数据。

sar 命令默认情况下生成 CPU 利用率报告,而-0 选项创建一个输出文件来存储指标。
案例:是 1秒钟收集3个样例并保存在文件中
sar -o report.out 1 3
例中使用的是交互式的方式执行 sar。
代理将在预定时间使如果想非交互式用 cron 命令执行以收集数据。在/etc/cron.d/sysstat 配置计划任务,并且里面运行/usr/lib64/sa/sa1和/usr/lib64/sa/sa2命令.
# Run system activity accounting tool every 10 minutes
*/10 ****root /usr/lib64/sa/sa1 1 1
# Generate a daily summary of process accounting at 23:53
53 23 * ** root /usr/lib64/sa/sa2 -A
命令详解:
-B: 报告内存分页统计信息
-b: 报告所有设备的 I/0 和传输信息
-d : 报告每个块设备的I/0 和传输信息
-n: 报告网络统计信息
-r: 报告内存利用率统计信
sar命令还可以通过使用-f选项读取日志文件
案例:
使用 sar -g -f命令从var/log/sa/sa03 文件中读取队列长度和负载
sar -q -f /var/log/sa/sa03  #sa03表示日期
使用 Performance Co-Pilot(PCP)收集性能数据

PCP 是一个开源,分布式,指标收集和分析系统的工具,它包括 CPU,内存,磁盘交换,网络,NFS,RPC,文件系统和每个进程统计信息等领域的活动覆盖率PCP 组件:
PMCD: 性能度量收集器守护进程
PMDA:性能度量域代理,插件代理负责一组特定的指标。
多种客户端工具,例如 pminfo pmstat.
pcp-gui 图形化工具

PCP 的使用

需要安装 pcp 软件包,如果需要用到图形工具还需安装 pcp-gui软件包。

yum install pcp pcp-system-tools ( PCP额外的工具包)
Systemctl start pmcd
systemctl enable pmcd
1) pcp dstat,通用性能分析工具。
后面可以加上--cpu,--disk,--net,--page 或--sys(简写成 cdngy)。
如果未加上任何选项时,则这几个指标都会收集
注意: 建议加上-t 选项,输出时间戳
2)
pminfo: 用于获取存储在 PCP 数据库中的指标列表
例如:
pminfo -dt proc.nprocs.
pmval: 用于收集带有度量的相关数据
例如:
pmval -s 5 proc.nprocs
-s:采集样本的数量
pmlogger:重放日志中的数据
pcp 将数据存储在日志中,默认情况下 pmlogger 将日志数据存储在/var/log/pcp/pmlogger/HOSTNAME(当前主机名)目录下。
在pmlogger 存档中收集数据后,将使用 pmval或 pmchart 工具来基于选择的性能指标查询和处理数据(注意需要使用-a 选项来针对存档数据和并非实时数据)

pmval -s 5 proc.nprocs
-s:采集样本的数量
pmlogger:重放日志中的数据
pcp 将数据存储在日志中,默认情况下 pmlogger 将日志数据存储在/var/log/pcp/pmlogger/HOSTNAME(当前主机名)目录下。
在pmlogger 存档中收集数据后,将使用 pmval或 pmchart 工具来基于选择的性能指标查询和处理数据(注意需要使用-a 选项来针对存档数据和并非实时数据)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值