多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
dstat 使用示例 # dstat 安装完成后, 执行 dstat 命令, 默认情况它会收集-cpu-,-disk-,-net-,-paging-,-system-的数据, 一秒钟收集一次. 默认输入dstat等于输入了dstat -cdngy 1或dstat -a 1. 推荐使用 date && dstat -tclmdny 60 一分钟监视一次(注意调节显示的宽度, 或去掉-t选项). 我们常用的参数 -c, --cpu enable cpu stats 显示cpu的情况 -d, --disk enable disk stats 显示硬盘的情况 -l, --load enable load stats 显示系统的负载情况 -m, --mem enable memory stats 显示内存的情况 -n, --net enable network stats 显示网络的情况 -p, --proc enable process stats 显示进程的情况 -s, --swap enable swap stats 显示swap的情况 -y, --sys enable system stats 显示系统的情况 --output file write CSV output to file 写到csv文件中 默认情况下dstat是每秒钟就收集数据一次,可以修改一下让它每30秒收集一次 dstat -cdlmnpsy 30 dstat -cndymlp -N total -D total 5 25 top top - 11:09:48 up 6 min, 2 users, load average: 0.09, 0.38, 0.24 Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie %Cpu(s): 6.4 us, 6.9 sy, 1.0 ni, 84.5 id, 1.3 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 1024708 total, 724056 used, 300652 free, 43336 buffers KiB Swap: 1046524 total, 0 used, 1046524 free. 291540 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1062 root 20 0 42800 6268 5656 S 6.3 0.6 0:00.66 vmtoolsd 1359 root 20 0 152696 38144 18172 S 6.3 3.7 0:04.40 Xorg 2621 root 20 0 127824 27712 23344 S 6.3 2.7 0:01.52 gnome-termi+ 1 root 20 0 4472 3664 2576 S 0.0 0.4 0:03.98 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 可以实时显示系统中各个进程的占用情况。 上部分列出了系统整体的统计信息:任务、CPU、内存、交换区等信息。 下部分列出了进程的详细情况。 uptime 运行结果:16:32:01 up 8 days, 5:55, 3 users, load average: 0.00, 0.00, 0.00 当前在线用户 2个 平均负载:一定时间内CPU任务队列的平均长度,是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息。 上面3个数分别是“最近一分钟系统的负载(0.00)、最近5分钟系统的负载(0.01)、最近15分钟系统的负载(0.05)” 分析思路:如果load average指标的5分钟以及15分钟的值长 大于 CPU个数*CPU核数*0.7, 并且us长时间比较高,说明CPU不够用,需要升级CPU或调整程序的算法降低CPU的使用率。 netstat (Netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具, 系统管理员可以用来监控网络性能,定位并解决网络相关问题。) 可以显示各种网络相关信息,比如各个连接的类型、状态等。 比如显示所有状态为“TIME_WAIT”的连接:netstat -ae|grep "TIME_WAIT" vmstat 常见参数:vmstat 2 6 命令将会每2秒中执行一次vmstat,执行6次后自动停止执行 vmstat -t 带-t参数执行vmstat命令,该命令将会在每一行输出后都带一个时间戳 vmstat -s vmstat命令的-s参数,将输出各种事件计数器和内存的统计信息。 vmstat -d vmstat的-d参数将会输出所有磁盘的统计信息。 vmstat -S M 1 5 vmstat的-S和-M参数(大写和MB)将会以MB为单位输出。vmstat默认以KB为单位输出统计信息。 可以用来监控虚拟内存。可对操作系统的虚拟内存、IO、CPU等多个指标的整体情况进行监视。 Linux系统的内存分为物理内存和虚拟内存两种。物理内存是真实的,也就是物理内存条上的内存。 而虚拟内存则是采用硬盘空间补充物理内存,将暂时不使用的内存页写到硬盘上以腾出更多的物理 内存让有需要的进程使用。当这些已被腾出的内存页需要再次使用时才从硬盘(虚拟内存)中读回内存。 这一切对于用户来说是透明的。通常对Linux系统来说,虚拟内存就是swap分区。 运行结果: procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 10336 287032 16856 266904 0 9 556 278 155 452 15 4 79 2 0 内存方面: swpd:已经使用的交换内存(kb) free:空闲的物理内存(kb) buff:用作缓冲区的内存数(kb) cache:用作高速缓存的内存数(kb) si、so 两列,表示磁盘和内存之间交换的频繁程度。 分析思路: 如果 si、so 数值长期很大并且free长期很小,表示物理内存不能满足需要,也就是内存不足。 由于磁盘的性能比内存是慢很多的,所以如果存在大量的页面交换,那么系统的性能必然会受到很大影响。 CPU方面: r:展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。 us:用户CPU时间。 sy:系统CPU时间。 id:空闲CPU时间。 wa:等等I/O CPU时间。 us+sy+id+wa=100% 分析思路: 如果 r 经常大于4,且id经常小于40,表面CPU的负荷很重。 htop top的升级版 ss glances 安装时报错;(sudo vim /etc/resolv.conf添加nameserver 8.8.8.8)=>apt update glances -t 5 时间间隔设为 5 秒 Glances 提供了很多快捷键,可以在它运行时用来查找输出信息。 下面是一些常用的热键列表: m : 按内存占用排序进程 p : 按进程名称排序进程 c : 按 CPU 占用率排序进程 i : 按 I/O 频率排序进程 a : 自动排序进程 d : 显示/隐藏磁盘 I/O 统计信息 f : 显示/隐藏文件系统统计信息 s : 显示/隐藏传感器统计信息 y : 显示/隐藏硬盘温度统计信息 l : 显示/隐藏日志 n : 显示/隐藏网络统计信息 x : 删除警告和严重日志 h : 显示/隐藏帮助界面 q : 退出 w : 删除警告记录 CPU 平均负载 不同状态(如活动、休眠) 进程的数量 所有内存信息,如物理内存、交换空间、空闲内存 CPU 信息 网络连接的上行/下行速度 磁盘 I/O 读/写速度详细信息 当前挂载设备的磁盘使用情况 消耗资源最多的进程和他们的 CPU/内存使用情况 watch 比如实时显示网络流量:watch -n 1 "/sbin/ifconfig eth0|grep bytes" ps 显示10个消耗CPU最多的进程:ps aux|sort -rnk +3|head -10 显示10个消耗内存最多的进程:ps aux|sort -rnk +4|head -10 free total used free shared buffers cached Mem: 1024708 735760 288948 3712 43352 291540 -/+ buffers/cache: 400868 623840 Swap: 1046524 0 1046524 total= used + free 分析思路: 当 –/+ buffers/cache中的free长时间接近0,且 swap used长时间比较大时,说明物理内存已经不够用了, 需要升级内存或降低内存的使用量。 iostat 不带参数的iostat命令将会输出CPU和每个分区的输出/输出的统计信息