1.toptop是最常用的查看系统资源使用情况的工具,包括CPU、内存等资源。这里的主要焦点是CPU资源。1.1/proc/loadavgloadaverage取自/proc/loadavg。9.539.128.373/88928165前三个数字是1、5、15分钟内进程队列中的平均进程数,包括正在运行的进程+准备运行的进程。第四个数字分子表示正在运行的进程数,分母是进程总数。最后一个数字是最近运行的进程ID号。其中top取/proc/loadavg的前三位。1.2top使用opentop,可以指定更新周期。输入H打开隐藏线程;输入1显示单核CPU使用率。top-H-b-d1-n200>top.txt,每1秒计数一次,共计200次,显示线程详情,并保存到top.txt。CPU信息对应含义如下:us:用户,统计niceness小于等于0的用户空间进程,即优先级为100~120。ni:nice,统计nice大于0的用户空间进程,即优先级为121~139。sys:系统,统计内核态的运行时间,不包括中断。id:idle,几个系统处于空闲状态。wa:iowait,统计io等待时间。hi:硬件中断,统计硬件中断时间。si:软件中断,统计软中断时间。st:偷2。perf在这里关注的是CPU使用情况。通过sudoperftop-scomm可以查看当前系统中运行进程的比例。与top区分空闲、系统、用户不同的是,这里的比例是每个进程占总运行时间的比例。通过sudoperfrecord记录采样信息,然后通过sudoperfreport-scomm。3、sar和ksarsar是SystemActivityReport的意思,可以用来实时观察当前系统活动,也可以生成历史报告。使用sar需要安装sudoaptinstallsysstat,然后配置sysstat。sar用于记录统计信息,ksar用于将记录的信息图形化输出。ksar下载地址在:https://github.com/vlsi/ksar/...。#将ENABLED="false"改为ENABLED="true"$sudogedit/etc/default/sysstat#修改sar周期等配置$sudogedit/etc/cron.d/sysstat#重启sar服务$sudo/etc/init.d/sysstatrestart#sar日志存放目录$ls-l/var/log/sysstat/使用sar记录从开机到当前的统计信息到sar.txt文件中。LC_ALL=Csar-A>sar.txtPS:这里直接使用sar-A,在ksar中不能正常显示。如下执行java-jarksar.jar,然后Data->Loadfromtextfile...选择保存的sar.txt文件。得到下图。也可以通过sar记录一段时间的信息,指定采样周期和采样次数。在将这些命令保存到文件之前添加LC_ALL=C之后,这些命令可以在ksar中以图形方式显示。sar1100------------------所有cpu集成统计sar-PALL1100------包括cpu集成和单cpu统计信息sar-B1100----------------分页统计sar-b1100----------------块设备IO统计sar-d1100-------------块设备活动统计sar-F1100----------------挂载文件系统统计sar-rALL----------------显示详细的内存使用统计sar-S------------------------显示交换空间使用统计sar-w------------------------显示进程创建和进程切换统计sar-W------------------------显示换入和换出统计信息。4.mpstatmpstat是多处理器统计信息。不带参数时,mpstat显示系统系统以来所有信息的平均值。常见用法如下,-PALL监控所有CPU,详情显示具体CPU;10表示每10秒监听一次;20表示监控20次$mpstat-PALL1020结果如下:usr表示用户空间进程,nice表示nice值大于0的用户空间进程。sys是内核空间,iowait是I/O等待时间,irq是硬中断,soft是软中断,idle是空闲时间,guest和gnice是虚拟机时间。5.uptimeuptime是获取系统总运行时间,以及最近1分钟、5分钟、15分钟的平均负载的简单方法。uptime通过/proc/uptime和/proc/loadavg获取相关信息。up之前为当前系统时间,up之后为系统运行时间。loadaverage之后是1分钟、5分钟、15分钟的平均负载。11:15:41向上82天,20:34,8个用户,平均负载:0.28、0.40、0.43**6。vmstat**vmstat主要用来监控系统内存使用情况,同时也包含了一些CPU相关的信息。使用方法vmstat55运行5次,每次5秒。结果如下:procs----------memory--------------swap-------io-----system--------cpu-----rbswpdfreebuffcachesisobiboincsussyidwast1047257622868855909210617560093910848700104725762281845591005011315323395106840104725762293085591001061616000014463449105850000472592559108106161616141934741058501047298080861616161616161616161616161616161616161616161616161616161600144634391058500Theabove参数可以分为6个部分:process,memory,swap,io,interruptandprocessswitching,cpu。更详细的解释:7.pidstatpidstat主要用于监控所有或指定进程对系统资源的占用情况。7.1查看CPU使用率第一次运行pidstat会显示自系统启动以来的各种统计信息,再次运行pidstat会显示自上次运行该命令以来的统计信息。用户可以通过指定统计的次数和时间来获取所需的统计信息。#显示所有进程统计信息,包括空闲进程。pidstat-pALL#更详细地显示线程统计信息。pidstat-pALL-t#周期采样和采样次数pidstat[option]interval[count]另外,还可以通过-p获取指定进程的统计信息。pidstat还可以通过-r获取内存使用统计,通过-d获取IO使用统计。7.2查看内存使用情况pidstat-pALL-r结果如下:15:18:21UIDPIDminflt/smajflt/sVSZRSS%MEMCommand15:18:21010.020.0018531630280.08systemd15:18分钟21秒020.000.00000.00kthreadd15:18:21040.000.00000.00kworker/0:0H15:18:21060.000.00000.00mm_percpu_wq15:18:21070.0.0000.00ksoftirqd/015:18:21080.000.00000.00rcu_schedminflt/s:minorpagefaultspersecond,表示虚拟内存地址映射到物理内存产生的pagefaults数量内存地址。majflt/s:每秒主要页面错误数。当虚拟内存地址映射到物理内存地址时,对应的页面就在swap中。这样的pagefault是majorpagefault,一般是在内存使用紧张的时候。生产。VSZ:进程使用的虚拟内存(以kB为单位)。RSS:进程使用的物理内存(以kB为单位)。%MEM:进程使用的内存百分比。command:拉起进程对应的命令。7.3查看磁盘使用情况pidstat-pALL-d结果如下:15:20:40UIDPIDkB_rd/skB_wr/skB_ccwr/siodelayCommand15:20:4001-1.00-1.00-1.00243523129systemd1520:4002-1.00-1.00-1.000kthreadd15:20:4004-1.00-1.00-1.000kworker/0:0H15:20:4006-1.00-1.00-1.000mm_percpu_wq15:20:4007-1.00-1.00-1.00714512328679ksoftirqd/015:20:4008-1.00-1.00-1.00417757303594rcu\_schedkB_rd/s:进程每秒从磁盘读取的数据量(以千字节为单位).kB_wr/s:进程每秒写入磁盘的数据量(单位为kB)。kB_ccwr/s:进程取消每秒写入磁盘的数据量(以kB为单位)。command::拉起进程对应的命令。8、timetime命令可以用来统计指定程序的CPU耗时。例如timecksumnomachine_6.0.80_1.exe得到如下结果。240194063832606752nomachine_6.0.80_1.exe#整个运行的总耗时,0.263-0.094-0.011=0.158是IO等待时间。real0m0.263s#用户态耗时user0m0.094s#内核态耗时sys0m0.011s240194063832606752nomachine_6.0.80_1.exe#第二次执行可以看出IO操作的等待时间基本没有了。真实0m0.098s用户0m0.097s系统0m0.000s**9。cpustat**通过sudoaptinstallcpustat安装,cpustat-T-D-x结果如下。#显示LoadAvg信息和平均频率等。LoadAvg0.660.540.49,FreqAvg.1.46GHz,4个CPU在线#统计进程切换次数、硬中断、软中断等#CPU占用率、用户空间和内核空间占用率等3791.1Ctxt/s,1709.9IRQ/s,1800.0softIRQ/s,0.0newtasks/s,1running,0blocked%CPU%USR%SYSPIDSCPUTimeTask25.7425.740.0011435R32.29w/usr/bin/PYTHON315.8415.840.009445S01.49W/usr/usr/lib/Xorg/Xorg10.899.909.900.992722S11.05WCompiz7.920.920.9232352S216.60S216.600.990.990.0011046S216.20hcompiz0.990.990.001317S08.76h/usr/NX/bin/nxnode.bin0.990.000.9910293S11.24m[kworker/1:2]总计64.3610v6.0556g.470.49,频率平均值1.75GHz,4个CPU在线2834.8Ctxt/s,1190.9IRQ/s,1183.3softIRQ/s,0.0个新任务/s,4个运行,0个阻塞%CPU%USR%SYSPIDSCPU时间任务25.7625.760.0011435R32.29w/usr/bin/python318.1818.180.009445S01.49w/usr/lib/xorg/Xorg7.587.580.002722S11.05wcompiz6.060.006.0632352S216.64s[kworker/5:1.0]2.032397R10.02scpustat1.520.001.528S03.00h[rcu_sched]1.520.001.5218409S01.16mupdate-notifier62.1251.5210.61CPU利用率的总分布(每个任务):%CPU利用率计数(%)0.00-1.9770698.881.97-3.9400.003.94-0.915.917.8820.287.88-9.8500.009.85-11.8200.0011.82-13.7910.1413.79-15.76-15.7600.0015.76-17.76-17.7310.1417.73-19.73-19.7027.5700.0027.58-29.5400.0029.55-31.5100.0031.52-33.4800.0033.48-35.48-35.4500.0035.45-37.45-37.4200.0037.42-39.39-39.3910.14CPU利用率分布(--------------------------------------各CPU使用率,划分用户空间和内核空间CPU#USR%SYS%017.371.2018.982.4020.607.19325.750.00**10。htop**htop与top具有相似的功能,但比top更具可读性。在界面上按F5,可以看到进程中的线程,树形结构显示父子关系。11.atopatop是一个监控系统资源和进程的工具。它将列表中的进程按照CPU占用率降序排列,每个进程包含CPU、内存、磁盘、网络状态等信息。它的功能类似于top和htop。12.glancesglances是一个用python写的报表工具,功能类似于Nmon。它可以报告有关cpu、内存、网络、磁盘和进程的统计信息。除了报告统计数据外,glances不支持任何其他特性或功能。程序运行时按“h”显示帮助页面。13.nmonNmon是一个非常简单易用的工具,可以在一个屏幕上监控CPU、内存、网络、磁盘使用情况和进程列表。Nmon与那些仅用于报告的报告工具完全相同,只是它不能管理进程和修改报告显示。另外,它可以将数据保存到电子表格文件中。14.pcp-guiPerformanceCo-Pilot,简称PCP,是一个系统性能和分析框架。它整理来自多个主机的数据并实时分析,以帮助您识别异常的行为模式。它还提供API让您设计自己的监控和报告解决方案。安装pcp相关工具。$sudoaptinstallpcppcp-guiFile->OpenView选择要打开的视图,如CPU、Disk、Memory等。15.collectl和colplot15.1collectl使用collectl是一个非常好的实用工具,具有丰富的命令行功能,您可以使用它来收集描述系统当前状态的性能数据。与大多数其他系统监控工具不同,collectl不限于有限的系统指标,相反它可以收集有关许多不同类型的系统资源的信息,例如cpu、磁盘、内存、网络、套接字、tcp、inode、infiniband、lustre、内存,nfs,processes,quadrics,slabs,buddyinfo等。同时collectl还可以替代常用工具,如top,vmstat,ps,iotop等。安装collectl:sudoapt-getinstallcollectlcollectl的使用很简单。默认情况下,collectl显示cpu、磁盘和网络信息。collectl还可以显示更多的子系统信息。如果选项有对应的大写选项,则大写选项表示更详细的设备统计信息。b-好友信息(内存碎片)c-所有CPU的综合统计;C——单个CPU的统计信息。d-整个文件系统磁盘的统计信息;C-单个磁盘的统计信息。f-NFSV3Datai-InodeandFileSystemj-显示各CPU的Interrupts触发情况;J-显示每个中断的详细触发情况。l–Lustrem–显示整个系统的内存使用情况;M-按节点显示内存使用情况。n-显示整个系统的网络使用情况;N-显示网卡的网络使用情况。s–Socketst–TCPx–Interconnecty–系统所有Slabs(系统对象缓存)的使用情况统计;Y——每个平板使用的详细信息。collectl--all显示所有子系统的统计信息,包括cpu、终端、内存、磁盘、网络、TCP、socket、文件系统、NFS。collectl--top可以代替top命令:collectl--vmstat可以代替vmstat命令:collectl-c1-sZ-i:1可以代替ps命令。collectl与一些处理分析数据的工具(如colmux、colgui、colplot)结合使用,可以提供可视化图形。15.2colplot使用colplot是collectl工具集的一部分,它以图形方式在浏览器中显示collectl收集的数据。colplot简介(http://collectl-utils.sourcef...,相关源码可在collectl-utils下载]:https://sourceforge.net/proje...下载的colplot解压后,sudo./INSTALL安装colplot,安装后重启apache服务:$suodsystemctlreloadapache2$sudosystemctlrestartapache2在浏览器中输入http://127.0.0.1/colplot/即可使用colplot,通过collectl-P选择保存保存的通过ChangeDirData,然后设置Plotdetails,显示那些子系统,plotsize等。最后,GeneratePlot查看结果。作者:ArnoldLu链接:https://www.cnblogs.com/arnol...最新2TB技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MongoDB、电子书籍、Java基础课程、Java实战项目、ELKStack、机器学习、BAT面试精讲视频等。只需在“移民哥科技之路”微信的公众号对话框回复关键词:1024即可获取所有资料.
