linux性能监测工具(深度学习资源监控)

Linux性能监测工具

相关链接:Linux 如何查看 CPU 利用率?

1.top

top 命令会显示 Linux 的进程。它提供了一个运行中系统的实时动态视图,即实际的进程活动。默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每五秒更新一次。

top 的常用快捷键

常用快捷键列表:

(2)htop - 交互式的进程查看器

htop 命令详解

htop 是一款免费并开源的基于 ncurses 的 Linux 进程查看器。它比 top 命令更简单易用。您无需使用 PID、无需离开 htop 界面,便可以杀掉进程或调整其调度优先级。

1
$ htop

输出示例:

htop输出到文件

先安装 ahahtml2text

1
echo q | htop -C | aha --line-fix | html2text -width 999 | grep -v "F1Help" | grep -v "xml version=" > file.txt

2.mpstat - 监控多处理器的使用情况

mpstat 命令显示每个可用处理器的使用情况,编号从 0 开始。命令 mpstat -P ALL 显示了每个处理器的平均使用率:

1
# mpstat -P ALL

输出示例:

1
2
3
4
5
6
7
8
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)       06/26/2018

06:48:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
06:48:11 PM all 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80

3. Sysstat Package

相关链接:利用Ksar分析系统瓶颈

中文教程

sar 命令用用收集、报告、或者保存 UNIX / Linux 系统的活动信息:

  1. CPU 使用率
  2. 内存页面和使用率
  3. 网络 I/O 和传输统计
  4. 进程创建活动
  5. 所有的块设备活动
  6. 每秒中断数等等

sar 命令的输出能够用于识别服务器瓶颈。但是,分析 sar 命令提供的信息可能比较困难,所以要使用 kSar 工具。kSar 工具可以将 sar 命令的输出绘制成基于时间周期的、易于理解的图表。

sarsa1、和 sa2 命令都是 sysstat 包的一部分。它是 Linux 包含的性能监视工具集合。

  1. sar:显示数据
  2. sa1sa2:收集和保存数据用于以后分析。sa2 shell 脚本在 /var/log/sa 目录中每日写入一个报告。sa1 shell 脚本将每日的系统活动信息以二进制数据的形式写入到文件中。
  3. sadc —— 系统活动数据收集器。可以通过修改sa1sa2脚本去配置各种选项。它们位于以下的目录:

    • /usr/lib64/sa/sa1 (64 位)或者 /usr/lib/sa/sa1 (32 位) —— 它调用 sadc 去记录报告到 /var/log/sa/sadX 格式。

    • /usr/lib64/sa/sa2 (64 位)或者 /usr/lib/sa/sa2 (32 位) —— 它调用 sar 去记录报告到 /var/log/sa/sarX 格式。

4.KDE 系统监控器 - 实时系统报告和图形化显示

KSysguard 手册

KSysguard 是 KDE 桌面的网络化系统监控程序。这个工具可以通过 ssh 会话运行。它提供了许多功能,比如可以监控本地和远程主机的客户端-服务器模式。前端图形界面使用传感器来检索信息。传感器可以返回简单的值或更复杂的信息,如表格。每种类型的信息都有一个或多个显示界面,并被组织成工作表的形式,这些工作表可以分别保存和加载。所以,KSysguard 不仅是一个简单的任务管理器,还是一个控制大型服务器平台的强大工具。

5. Holy Lance

Holy Lance 是一个简单易用的 基于 PHP]的 Linux 图形化性能监视器。

基于PHP,单文件,易于部署。Web界面,动态更新,实时简便,即开即用。目前可以动态监控CPU占用率、内存、磁盘、网络、进程,还带有环境探针以及性能测试功能。

6. GPU监控

nvidia-smi文档

nvidia-smi是Nvidia显卡命令行管理套件,基于NVML库,旨在管理和监控Nvidia GPU设备。

这是nvidia-smi命令的输出,其中最重要的两个指标:

  1. 显存占用
  2. GPU利用率

显存占用和GPU利用率是两个不一样的东西,显卡是由GPU计算单元和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。

(1)编写脚本 monitor.sh

1
2
watch -n2.0 nvidia-smi \
--query-gpu=index,timestamp,name,temperature.gpu,utilization.gpu,utilization.memory,memory.total,memory.free,memory.used --format=csv

watch命令是为命令行输出设计的工具,其结果包含很多不可打印的字符,所以可以的解决方法有两个

  1. 把输出结果的语句写到command里面比如监控GPU的显存变化并写入日志

    1
    watch -n 3 'nvidia-smi -q -d MEMORY|tee -a gpu.log'
  2. 写脚本

    1
    2
    3
    4
    5
    while <some condition>
    do
    <mycommand> 2>&1 | tee -a /path/to/logfile
    sleep 60
    done

(2)gpustat

gpustat文档

pip install gpustat即可安装,gpustat基于nvidia-smi,可以提供更美观简洁的展示,结合watch命令,可以动态实时监控GPU的使用情况。

1
watch --color -n1 gpustat -cpu

(3)Glances

官方文档

glances 工具可以在用户的终端上实时显示重要的系统信息,并动态地对其进行更新。这个高效的工具可以工作于任何终端屏幕。glances 工具还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和绘制图形。

1
glances --export csv --export-csv-file ./glances.csv
0%