Linux常用命令之性能统计
Linux 常用命令之性能统计
简介
通过性能统计命令可以统计和监控系统性能的实时数据和历史趋势,从而更好地了解系统的运行状况和性能瓶颈,以便进行优化和调整。
为什么要学习性能统计
- 学习性能统计命令有助于进行性能测试和性能分析,可以评估系统或应用程序在不同负载条件下的表现和瓶颈。
- 性能测试是通过模拟实际使用情况下的工作负载来测量和评估系统或应用程序的性能水平。
- 性能分析可以帮助识别系统的瓶颈、分析哪些环节可以改进和优化。通过对系统进行性能分析,可以提升系统的性能,改善用户体验,并减少资源的浪费。
性能统计方法
- 临时性分析:命令交互
- 系统性分析:Prometheus Grafana
实际工作中使用这两个工具直接监控各个性能指标,以下是两个工具的介绍:
-
Prometheus:Prometheus 是一种开源的监控系统,用于收集指标数据并存储在时间序列数据库中。它支持多种数据采集方式,如主动拉取、被动推送和服务发现等。Prometheus 可以监控各种类型的指标,包括服务器资源使用情况、应用程序性能指标、网络流量等。
-
Grafana:Grafana 是一种开源的数据可视化工具,用于创建和共享实时监控仪表盘。它可以与多种数据源集成,包括 Prometheus、InfluxDB、Elasticsearch 等。Grafana 提供丰富的图表和可视化选项,以及灵活的仪表盘配置和布局功能。通过 Grafana,可以将收集的监控数据转化为直观的图形展示,可以更好地理解和分析数据,以及实时监控系统的状态和性能。
综上所述,Prometheus 用于收集和存储系统和应用程序的指标数据,而 Grafana 用于可视化和展示这些数据。它们一起提供了一个强大的监控和数据可视化解决方案,可帮助实时监控系统的性能、识别问题和优化机会,并提供直观的数据展示和报告。两者的工作原理如下图所示:
Grafana 的界面如下图所示:
常用性能指标
- CPU
- mem (内存)
- net (网络)
查看性能指标的常用命令
CPU 使用统计
1. 查看 CPU 的详细信息
cat /proc/cpuinfo
2. 实时监控系统负载与进程 cpu 占用
top # 提供实时的进程状态和系统资源的使用情况
注意:ps 命令的 cpu 是平均 cpu 利用率,不适合查看 CPU 的使用。
内存 (MEM) 占用统计
1.free 命令
查看内存使用情况。该命令可以提供有关系统中可用内存、已使用内存、缓存和交换空间等的信息。
free [参数]
常用参数:
-b
:以 Byte 为单位显示内存使用情况。-k
:以 KB 为单位显示内存使用情况。-m
:以 MB 为单位显示内存使用情况。-g
:以 GB 为单位显示内存使用情况。-h
:根据内存大小自动选择合适的单位显示。-s
:<间隔秒数> 持续观察内存使用状况。-c
:<显示次数> 和-s 配合使用。
2.查看内存文件
/proc/meminfo
文件是一个虚拟文件,包含有关系统内存使用情况的信息。使用查看文件的命令可以查看内存使用情况。
cat /proc/meminfo
3.top 命令
top
命令是一个动态监视系统运行状态的命令,其中包括内存使用情况。
top
4.查看进程级别的内存
ps [参数]
常用参数:
-e
: 显示所有进程,包括系统进程和用户进程。-f
: 显示完整的进程信息,包括进程的父进程 ID 和启动时间等。-aux
: 以用户为单位显示进程信息,包括所有进程的详细信息。-r
: 只显示正在运行的进程。–sort
: 按照列名排序
网络连接(Net)统计
netstat [参数]
常用参数:
-a
显示所有选项,默认不显示 listen 相关。-t
(tcp)仅显示 tcp 相关。-u
(udp)仅显示 udp 相关。-n
拒绝显示别名,能显示数字的全部转化成数字。-l
仅列出有在 listen(监听)的服务状态。-p
显示建立相关连接的程序名。-c
每隔一个固定时间,执行该 netstat 命令。
总结
- 常用性能指标。ß
- 性能统计方法。
- 查看性能指标的常用命令。