gpt4 book ai didi

Linux安装使用系统监控工具Collectl的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Linux安装使用系统监控工具Collectl的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

作为Linux系统监控工具,Collectl是款值得推荐的软件,使用Collectl能够及时掌握系统的运行状况,还能像iotop命令一样使用collectl进行智能统计,下面小编就给大家介绍下Collectl的安装及使用.

  系统资源监控 。

  Collectl作为一个轻量级的监控工具,在同类工具中是功能最全的。用户可监测不同的复杂系统矩阵值,并可保留数据以做之后的分析。不同于其他只用来监测特定系统参数的工具,Collectl可以同时监测不同的变量,并以合适的方式记录它们.

  不同于或聚焦于一小组统计数据、采用唯一输出方式,或采用迭代、作为守护进程运行的大部分监测工具,collectl可以同时全部实现。用户可选择各种子系统中的任一系统来监测包括内存,CPU,磁盘,索引节点,无线带宽,lustre,内存,网络,网络文件系统,进程,二次型,slabs,套接口及TCP等信息.

  深入学习前让我们先看以下命令.

  $ collectl 。

  waiting for1 second sample.。.

  #《--------CPU--------》《----------Disks-----------》《----------Network----------》 。

  #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut 。

  00864177200000100 。

  521338273400820001 。

  1012222647009230201 。

  107631722008030102 。

  CPU使用率,磁盘输入输出和网络活动以每秒为单位来加载。对可以理解这些数据的人来说这些信息很容易读懂。这项列表在给定的时间间隔里会持续增加,并可直接形成一项文件跟踪日志。collectl工具提供了各种命令来对这些数据进行记录,查找及做其他处理.

  安装collectl工具 。

  对Ubuntu/Debian用户来说Collectl是默认资源,所以使用apt命令便可获取.

  $ sudo apt-get install collectl 。

  Fedora/CentOS用户使用yum命令便可获取.

  $ yum install collectl 。

  使用 。

  必要的了解 - Collectl子系统 。

  子系统是可检测到的不同系统资源类型。像CPU,内存,带宽等等都可构成一个子系统。只运行collectl命令将以批处理模式输出CPU,磁盘和网络子系统信息,我们在上文已看到相关内容.

  从操作说明可以看到,Collectl可以识别以下子系统.

  总计子系统 。

  b - buddy info (内存片段) 。

  c - CPU 。

  d -Disk 。

  f - NFS V3 Data 。

  i -InodeandFileSystem 。

  j -Interrupts 。

  l -Lustre 。

  m -Memory 。

  n -Networks 。

  s -Sockets 。

  t - TCP 。

  x -Interconnect 。

  y -Slabs(system object caches) 。

  细节子系统 。

  这是一系列的详细信息,大部分情况下都会由相应的总计数据衍生出来。目前“环境变量”和“进程”2类没有相应的总计数据。如果有3个磁盘,选择-sd,将只会看到3个磁盘组合出的单一信息。如果选择-sD,将会分别显示各磁盘信息.

  C - CPU 。

  D -Disk 。

  E -Environmental data (fan, power, temp), via ipmitool 。

  F - NFS Data 。

  J -Interrupts 。

  L -Lustre OST detail OR client Filesystem detail 。

  M -Memory node data, which is also known as numa data 。

  N -Networks 。

  T -65 TCP counters only available in plot format 。

  X -Interconnect 。

  Y -Slabs(system object caches) 。

  Z -Processes 。

  使用“-s”来监测特定的子系统并向其添加子系统的识别项。现在让我们举几个例子.

  1. 监测cpu使用率 。

  用“-sc”实现CPU总使用率的监测 。

  $ collectl -sc 。

  waiting for1 second sample.。.

  #《--------CPU--------》 。

  #cpu sys inter ctxsw 。

  3018003729 。

  3017673599 。

  使用“-C”观察各个单独的CPU使用情况。结果将会输出多行,分别对应一个CPU.

  $ collectl -sC 。

  waiting for1 second sample.。.

  # SINGLE CPU STATISTICS 。

  # Cpu User Nice Sys Wait IRQ Soft Steal Idle 。

  0300000096 。

  1300000096 。

  2200000097 。

  3100000098 。

  0200000097 。

  1202000095 。

  2100000098 。

  3401000095 。

  如果需要,可以同时使用C和c来获取单项CPU监测数据和汇总数据.

  2. 内存监测 。

  使用m子系统查看内存.

  $ collectl -sm 。

  waiting for1 second sample.。.

  #《-----------Memory-----------》 。

  #Free Buff Cach Inac Slab Map 。

  2G220M1G1G210M3G 。

  2G220M1G1G210M3G 。

  2G220M1G1G210M3G 。

  不难解释。 M用来查看更多内存的详细信息.

  $ collectl -sM 。

  waiting for1 second sample.。.

  # MEMORY STATISTICS 。

  # Node Total Used Free Slab Mapped Anon Locked Inact Hit% 。

  07975M5939M2036M215720K372184K06652K1434M0 。

  07975M5939M2036M215720K372072K06652K1433M0 。

  3. 查看磁盘使用情况 。

  d和D可以查看磁盘使用的概况和详细情况.

  $ collectl -sd 。

  waiting for1 second sample.。.

  #《----------Disks-----------》 。

  #KBRead Reads KBWrit Writes 。

  4113624 。

  008013 。

  $ collectl -sD 。

  waiting for1 second sample.。.

  # DISK STATISTICS (/sec) 。

  # 《---------reads---------》《---------writes---------》《--------averages--------》 Pct 。

  #Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util 。

  sda 0000000000000 。

  sda 0000000000000 。

  sda 10211715322621 。

  sda 0000921151818112125 。

  “--verbose”命令可以用来查看附加信息。和D命令不同,它将概况扩展,包含了更多信息.

  $ collectl -sd --verbose 。

  4. 同时报告多系统情况 。

  如果想要同时得到CPU,内存和磁盘报告,那么同时使用子命令组合来实现.

  $ collectl -scmd 。

  waiting for1 second sample.。.

  #《--------CPU--------》《-----------Memory-----------》《----------Disks-----------》 。

  #cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes 。

  40218743341G221M1G1G210M3G0000 。

  30189640651G221M1G1G210M3G00205 。

  5. 显示统计时间 。

  若要将每行的监测信息和时间一同显示,使用T选项。通过在“-o”参数来指定.

  $ collectl -scmd -oT 。

  waiting for1 second sample.。.

  # 《--------CPU--------》《-----------Memory-----------》《----------Disks-----------》 。

  #Time cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes 。

  12:03:0530196140131G225M1G1G212M3G0000 。

  12:03:0630188438101G225M1G1G212M3G0000 。

  12:03:0730201140601G225M1G1G212M3G0000 。

  使用“-oTm”可将时间换成毫秒显示.

  6. 改变样本计数 。

  collectl报告的每行都是一份快照或样本,它通常设定定期间隔如1秒来取样。i可用来设置时间间隔,c用来设置样本计数.

  $ collectl -c1 -sm 。

  waiting for1 second sample.。.

  #《-----------Memory-----------》 。

  #Free Buff Cach Inac Slab Map 。

  1G261M1G1G228M3G 。

  使用i命令可改变更新时间间隔.

  $ collectl -sm -i2 。

  waiting for2 second sample.。.

  #《-----------Memory-----------》 。

  #Free Buff Cach Inac Slab Map 。

  1G261M1G1G229M3G 。

  上面的命令设定每2秒收集一次内存信息.

  7. 像iotop一样使用collectl 。

  top命令将collectl像iostat/top工具一样进行智能统计。列表会持续更新,且可以使用不同字段实现排序.

  $ collectl --top iokb 。

  输出如下 。

  # TOP PROCESSES sorted by iokb (counters are /sec) 09:44:57 。

  # PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command 。

  3104 enlighte 2026833 S 938M33M00.000.00000:09.160400/usr/bin/ktorrent 。

  1 root 2000 S 26M3M20.000.00000:01.300000/sbin/init 。

  2 root 2000 S 0030.000.00000:00.000000 kthreadd 。

  3 root 2020 S 0000.000.00000:00.020000 ksoftirqd/0 。

  4 root 2020 S 0000.000.00000:00.000000 kworker/0:0 。

  5 root 020 S 0000.000.00000:00.000000 kworker/0:0H 。

  7 root RT 20 S 0000.000.00000:00.080000 migration/0 。

  8 root 2020 S 0020.000.00000:00.000000 rcu_bh 。

  9 root 2020 S 0000.000.00000:00.000000 rcuob/0 。

  上面的输出很像top命令,并且它以磁盘数量降序排列进程.

  若只想显示上面的5项进程,可用以下命令实现 。

  $ collectl --top iokb,5 。

  若想学习上面的列表里哪些字段可以排序,使用如下命令 。

  $ collectl --showtopopts 。

  下面是应用于进程或数据的最高排序类型列表。某些情况下你可能会使用某一字段进行排序,但它并非显示的一部分.

  TOP PROCESS SORT FIELDS 。

  进程排序字段 。

  Memory 。

  vsz virtual memory 。

  rss resident (physical) memory 。

  Time 。

  syst system time 。

  usrt user time 。

  time total time 。

  accum accumulated time 。

  I/O 。

  rkb KB read 。

  wkb KB written 。

  iokb total I/O KB 。

  rkbc KB read from pagecache 。

  wkbc KB written to pagecache 。

  iokbc total pagecacge I/O 。

  ioall total I/O KB (iokb+iokbc) 。

  rsys read system calls 。

  wsys write system calls 。

  iosys total system calls 。

  iocncl Cancelled write bytes 。

  PageFaults 。

  majf major page faults 。

  minf minor page faults 。

  flt total page faults 。

  ContextSwitches 。

  vctx volunary context switches 。

  nctx non-voluntary context switches 。

  Miscellaneous(best when used with--procfilt) 。

  cpu cpu number 。

  pid process pid 。

  thread total process threads (not counting main) 。

  TOP SLAB SORT FIELDS 。

  numobj total number of slab objects 。

  actobj active slab objects 。

  objsize sizes of slab objects 。

  numslab number of slabs 。

  objslab number of objects in a slab 。

  totsize total memory sizes taken by slabs 。

  totchg change in memory sizes 。

  totpct percent change in memory sizes 。

  name slab names 。

  8. 像top一样使用collectl 。

  为使collectl像top,我们只需以CPU使用率排序输出进程.

  $ collectl --top 。

  输出如下 。

  # TOP PROCESSES sorted by time (counters are /sec) 14:08:46 。

  # PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command 。

  9471 enlighte 2091020 R 63M22M30.030.101300:00.810003/usr/bin/perl 。

  3076 enlighte 2026832 S 521M40M20.000.03300:55.140002/usr/bin/yakuake 。

  3877 enlighte 20335641 S 1G218M10.000.03310:10.500000/opt/google/chrome/chrome 。

  4625 enlighte 20289536 S 1G241M20.000.02208:24.3900012/usr/lib/firefox/firefox 。

  5638 enlighte 2033563 S 1G265M10.000.02209:55.040002/opt/google/chrome/chrome 。

  1186 root 2011524 S 502M76M00.000.01103:02.960000/usr/bin/X 。

  1334 www-data 2013290 S 87M1M20.000.01100:00.850000 nginx:

  上面的命令也可用于显示子系统信息.

  $ collectl --top -scm 。

  9. 像ps一样列出进程 。

  为像ps命令一样列出所有进程且没有后续更新,用“c”命令让其计数至1. $ collectl -c1 -sZ -i:1 。

  上面的命令将会列出类似“ps -e”命令的所有进程。“procfilt”用于从所有进程中过滤出特定的进程信息。“procopts”用于指定另一组微调进程列表显示的命令.

  10. 像vmstat一样使用collectl 。

  Collectl有内置命令来完成像vmstat一样的功能.

  $ collectl --vmstat 。

  waiting for1 second sample.。.

  #procs ---------------memory (KB)--------------- --swaps-- -----io---- --system-- ----cpu----- 。

  # r b swpd free buff cache inact active si so bi bo in cs us sy id wa 。

  1001733M242M1922M1137M710M0001081982391820951 。

  1001733M242M1922M1137M710M00001906388610980 。

  1001733M242M1922M1137M710M00001739348030960 。

  11. 子系统的详细信息 。

  下面的命令以一秒为间隔,统计5次CPU信息并和时间一起显示出详细信息(冗长).

  $ collectl -sc -c5 -i1 --verbose -oT 。

  waiting for1 second sample.。.

  # CPU SUMMARY (INTR, CTXSW & PROC /sec) 。

  #Time User Nice Sys Wait IRQ Soft Steal Idle CPUs Intr Ctxsw Proc RunQ Run Avg1 Avg5 Avg15 RunT BlkT 。

  14:22:101100000087413122691086610.780.860.7810 。

  14:22:111500000084412832496086610.780.860.7810 。

  14:22:121700000082413422658086600.780.860.7800 。

  14:22:131500000084412412429086610.780.860.7810 。

  14:22:141100000088412702488086600.800.870.7800 。

  改变“-s”变量查看不同的子系统.

  总结 。

  本文的介绍不过是对collectl这个强大工具的一些浅见。本文本希望展示它有多灵活,其实通过以上的讨论让我们了解了包括记录及回寻捕获的数据,以多种文件格式导出数据并将数据转换为可被广泛的工具分析的格式等等功能的实现.

  collectl提供的另一大功能便是像服务一样运行,对远程Linux机器或完整的服务器集群提供远程监控,其表现堪称完美.

  Collectl同另一批可用于处理分析收集数据的名为Collectl实用工具 (colmux, colgui, colplot)的功能相契合.

  上面就是Linux安装和使用Collectl的方法介绍了,Collectl能够完成像ps、top、vmstat这些监控命令一样的功能,且还有其他的功能,比单纯的使用命令简单.

最后此篇关于Linux安装使用系统监控工具Collectl的方法的文章就讲到这里了,如果你想了解更多关于Linux安装使用系统监控工具Collectl的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com