Linux系统命令和性能监控(使用篇)

Linux性能监控常用工具

在这里插入图片描述
先上Brendan D. Gregg总结的linux性能监控常用工具图~

uptime机器启动时间+负载

查看机器的启动时间,登录用户,平均负载情况。

[root@VM_centos src]# uptime
13:01:52 up 46 days, 22:03, 4 users, load average: 0.13, 0.08, 0.05
  • 系统已运行时间
  • 前在线用户:4个用户,是总连接数量
  • 系统平均负载”0.13,0.08,0.05,为最近1分组,5分钟,15分钟的系统负载情况。

系统的平均负载是指在特定的时间间隔内队列中运⾏的平均进程数。如果⼀个进程满⾜以条件,它就会位 于运⾏队列中。

  • 它没有在等待I/O操作的结果。
  • 它没有主动进⼊等待状态(也就是没有调⽤’wait’相关的系统API )
  • 没有被停⽌(例如:等待终⽌)。
    负载说明(现针对单核情况,不是单核时则乘以核数):
  • load<1:没有等待
  • load==1:系统已⽆额外的资源跑更多的进程了
  • load>1:进程都堵着等待资源
    PS:
  • 查看cpu信息:cat /proc/cpuinfo
  • 查看cpu核数:grep ‘model name’ /proc/cpuinfo | wc -l
ulimit用户资源

Linux系统对每个登录的⽤户都限制其最⼤进程数和打开的最⼤⽂件句柄数。为了提⾼性能,可以根据硬件资源的具体情况设置各个⽤户的最⼤进程数和打开的最⼤⽂件句柄数。可以⽤ulimit -a来显示当前的各种 系统对⽤户使⽤资源的限制。

设置用户最大进程数
ulimit  -u 1024
设置用户可以打开的最大文件句柄数
ulimit -n 65530
pidstat进程资源
# pidstat [option] interval [count]
root@ubuntu:/home/yyy/Desktop# pidstat -urd -p 1
Linux 5.8.0-50-generic (ubuntu) 	2021年05月16日 	_x86_64_	(4 CPU)

06时10分10秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
06时10分10秒     0         1    0.00    0.01    0.00    0.00    0.02     2  systemd

06时10分10秒   UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
06时10分10秒     0         1      1.75      0.01  168888   13236   0.33  systemd

06时10分10秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
06时10分10秒     0         1     16.97      6.27      1.78       2  systemd


*-u 输出CPU的使⽤信息
*-r 输出内存的使⽤信息
*-d 输出磁盘I/O的使⽤信息

CPU信息

  • %usr #⽤户层任务正在使⽤的CPU百分⽐(with or without nice priority ,NOT include time spent running a virtual processor)
  • %system #系统层正在执⾏的任务的CPU使⽤百分⽐
  • %guest #运⾏虚拟机的CPU占⽤百分⽐
  • %CPU #所有的使⽤的CPU的时间百分⽐
  • CPU #处理器数量
free

此命令用于显示系统内存使用情况,包括总体内存,已经使用的内存;还可用于显示系统内核使用的缓冲区,包括缓冲buffer和缓存

oot@ubuntu:/home/yyy/Desktop# free
              total        used        free      shared  buff/cache   available
Mem:        4000696     1536436     1024972       24012     1439288     2168324
Swap:       2097148           0     2097148
#可以加-h 可读性好一些

CPU使用情况监听

vmstat

显示内核线程、虚拟内存、磁盘I/O、陷阱和CPU占用率的统计信息。

root@ubuntu:/home/yyy/Desktop# vmstat
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      0 1011736  57788 1382336    0    0    14     7   28   48  0  0 100  0  0
·
  • buff:是I/O系统存储的磁盘块⽂件的元数据的统计信息。
  • cache:是操作系统⽤来缓存磁盘数据的缓冲区,操作系统会⾃动⼀调节这个参数,在内存紧张时操作 系统会减少cache的占⽤空间来保证其他进程可⽤。
  • cs:参数表示线程环境的切换次数,此数据太⼤时表明线程的同步机制有问题。
  • si和so较⼤时,说明系统频繁使⽤交换区,应该查看操作系统的内存是否够⽤。
  • bi和bo代表I/O活动,根据其⼤⼩可以知道磁盘I/O的负载情况
mpstat

此命令⽤于实时监控系统CPU的⼀些统计信息,这些信息存放在/proc/stat⽂件中,在多核CPU系统⾥, 不但能查看所有CPU的平均使⽤信息,还能查看某个特定CPU的信息。
使用方式:在这里插入图片描述
在这里插入图片描述

监控磁盘I/O

istat IO

该命令⽤于监控CPU占⽤率、平均负载值及I/O读写速度等。 await指的是平均等待时间,⼀般都在10ms左右。
在这里插入图片描述

  • rrqm/s: 每秒对该设备的读请求被合并次数,⽂件系统会对读取同块(block)的请求进⾏合并
  • wrqm/s: 每秒对该设备的写请求被合并次数
  • r/s: 每秒完成的读次数 w/s: 每秒完成的写次数
  • rkB/s: 每秒读数据量(kB为单位)
  • wkB/s: 每秒写数据量(kB为单位)
  • avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
  • avgqu-sz: 平均等待处理的IO请求队列⻓度
  • await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
  • svctm: 平均每次IO请求的处理时间(毫秒为单位)
  • %util: 采⽤周期内⽤于IO操作的时间⽐率,即IO队列⾮空的时间⽐率
查看分区使用swapon

使用:swapon -s
在这里插入图片描述
swap 分区通常被称为交换分区,这是⼀块特殊的硬盘空 间,即当实际内存不够⽤的时候,操作系统会从内存中取出⼀部分暂时不⽤的数据,放在交换分区中,从 ⽽为当前运⾏的程序腾出⾜够的内存空间。 也就是说,当内存不够⽤时,我们使⽤ swap 分区来临时顶 替。

df、du
df -h

du常⽤的选项:

  • -h:以⼈类可读的⽅式显示,显示M或K
  • -a:显示⽬录占⽤的磁盘空间⼤⼩,还要显示其下⽬录和⽂件占⽤磁盘空间的⼤⼩
  • -s:显示⽬录占⽤的磁 盘空间⼤⼩,不显示其下⼦⽬录和⽂件占⽤的磁盘空间⼤⼩
  • -c:显示⼏个⽬录或⽂件占⽤的磁盘空间⼤ ⼩,还要统计它们的总和 du
  • -a 显示⽬录和⽬录下⼦⽬录和⽂件占⽤磁盘空间的⼤⼩。直接使⽤-a 以字节为单位,
  • -ha 如下图以M 或K为结果显示。
  • du -s 显示当前所在⽬录⼤⼩
  • du -s -h home 显示home⽬录⼤⼩
  • du -c 显示⼏个⽬录或⽂件占⽤的磁盘空间⼤⼩,还要统计它们的总和
  • du -lh --max-depth=1 : 查看当前⽬录下⼀级⼦⽂件和⼦⽬录占⽤的磁盘容量。

在这里插入图片描述

网络相关

ip 、ifconfig查看和设置网络

现在一般ip用的多一些,笔者工作中多用到,这里就不记录了。

nc

验证服务器端口有没有开放。
常用实例:
在这里插入图片描述

mtr连通性

mtr命令是Linux系统中的⽹络连通性测试⼯具,也可以⽤来检测丢包率。
例如: mtr www.baidu.com
在这里插入图片描述

可以模拟丢包:

sudo tc qdisc add dev eth0 root netem loss 10%
netstat

显示网络链接,端口信息

iptraf强⼤的⽹络监控

iptraf是⼀个实时监控⽹络流量的交互式的彩⾊⽂本屏幕界⾯。它监控的数据⽐较全⾯,可以输出TCP连 接、⽹络接⼝、协议、端⼝、⽹络包⼤⼩等信息,但是耗费的系统资源⽐较多,且需要管理员权限。 使⽤⽅式:sudo iptraf

tcpdump

常用网络状况分析工具,抓包实用工具~

tcpdump -i eth1 -w  port xx dump.pcap

在eth1中抓包xx端口的包

sar

多功能监控工具,使用简单,可以读取读秒的网卡存取速度,适合线上排查问题

sar -n DEV 1 

在这里插入图片描述
此命令除了可以⽤于查看⽹卡的信息,还可以⽤来收集如下服务的状态信息。

  • -A:所有报告的总和。
  • -u:CPU利⽤率。
  • -v:进程、I节点、⽂件和锁表状态。
  • -d:硬盘的使⽤报告。
  • -r:没有使⽤的内存⻚⾯和硬盘快。
  • -g:串⼝I/O的情况。
  • -b:缓冲区的使⽤情况。
  • -a:⽂件的读写情况。
  • -c:系统的调⽤情况。
  • -R:进程的活动情况。
  • -y:终端设备的活动情况。
  • -w:系统的交换活动。

——持续更新——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值