监控Linux系统状态的命令1 :w

uptime命令查看系统负载 :
w/uptime 最后面三个数字表示1分钟 ,5分钟 ,15分钟 平均有多少进程占用CPU
某一时刻1颗CPU只能有一个进程在使用其资源

监控Linux系统状态的命令2 :top,查看CPU
top命令 :
top 回车 就可以进入到top界面
每3秒刷新一次
默认按CPU百分比排序,可以按M键按照内存使用率大小排序
按数字1 ,可以显示所有的CPU使用率详情

              top -bn1 静态显示所有进程的情况,也是按CPU百分比排序静态显示进程信息 ,方便在shell脚本中使用top命令

监控Linux系统状态的命令3 :free,查看内存状态
free命令 : free查看内存和swap使用情况,关注最后一列的available ,这个数字是真正剩余的物理内存大小。

注意:直接执行free,单位是k或者字节
free -m #以兆为单位
free -k #显示的是默认的单位

监控Linux系统状态的命令4 :iostat
iostat监控磁盘 :
iostat /sar—> yum install -y systat
常见使用命令 : iostat -dx 1 #每隔一秒钟只查看读写速度一次,更详细
iostat -dx 1 5 #每隔一秒钟刷新一次,刷新5次

             iotop  -----> yum install -y iotopiotop    回车    动态显示 ,  按IO使用率大小排序

iostat命令查看,如果%util使用率太高,达到90多了,甚至超过100了,说明系统出问题了,磁盘性能严重下降了,只能更换磁盘。

iotop命令查看CPU,发现读、写、io,查找CPU占用的都很高的进程


iostat -d 1 #去掉cpu的部分,只查看读写速度

综合工具 ,断定瓶颈点 :
vmstat 1 #
vmstat 1 10 #每秒钟打印一次,打印10次。
关注 :r、b、si、so、 bi、bo、id、wa

监控Linux系统状态的命令5 :vmstat,可以同时查看磁盘、CPU、内存,三个

内存不足,现象:swpd下面的所有数字显示非0,或者si、so变成非0数字;

注意 :
si 相当于swap in ----> 从swap出去进入到内存里
so 相当于 swap out ----> 从内存出去进入swap到里
r 表示进程数,几个进程在占用CPU
b 表示被阻塞的进程的个数。
wa表示等待CPU的百分比
procs是进程相关的
memory是内存相关的
io是磁盘相关的
如果wa和b都大于0,说明系统出问题了。
system是软件使用的CPU
procs和system是软件方面的
memory、swap、io和CPU是硬件方面的

监控Linux系统状态的命令6 :sar查看CPU
监控网卡流量 :
sar -n DEV 1 10 #只查看网卡流量,每一秒钟刷新一次,刷新10次。
sar -n DEV -f /var/log/sa/sa21 # 查看21号的网卡流量
sar -b #查看磁盘容量
sar -q #系统负载,ldavg-1表示系统负载;ldavg-5查看历史系统负载
yum install -y epel-release #安装扩展源
yum install -y nload #
nload #直接输入nload命令,动态显示网卡流量 ,按上下的方向键,切换网卡。
ethtool ens33 #查看网卡ens33的具体信息
mii-tool ens33 #直接显示网卡的具体信息

查看28号的网卡具体的网卡流量,是根据系统启动的时间,作为标准, , DEV 表示网卡设备.

查看28号流量情况

因为只有一个网卡,所以只显示一个,
rxpck/s表示 网卡接收数据包的数量
txpck/s表示 网卡传送数据包的速度/流量
rxkB/s表示 网卡接收数据包的数量

查看磁盘负载

Sar命令查看系统负载

查询具体ens33网卡的详细信息

Supported ports : 支持10M、100M、1000M ; 全双工,半双工;
Speed : 传输速度
Link detected : 目前的连接状态

使用mii-tool ens33,直接查看网卡状态和流量

直接输入nload命令之后,按向右的方向键,切换到另一个网卡。

小常识 :
bit 比特 (带宽单位)
Byte 字节(速度传输单位)
100Mb带宽 单位 : Mbit / MByte 8bit = 1Byte , 下载速度2MB/s,换成带宽速度2*8=16Mbit ,100Mbit换成下载速度12.5MB/s.

监控Linux系统状态的命令7 :ps
查看进程 :
ps aux 、ps -elf、ps -eLf(查看线程)
STAT
S Sleep
R Running
s 父进程
N 低优先级
< 高优先级
+ 前台进程
l 多线程进程
Z 僵尸进程
ls -l /proc/pid/ #查看一个进程的一些详细信息。

监控Linux系统状态的命令8 :ss
查看网络连接状态 :
netstat -lnp(查看监听端口) 、netsat -lntp(查看TCP的链接)、netstat -lntup(查看TCP的链接)
netstat -an (查看系统所有的网络链接)
ss -an (查看系统所有的网络链接)

抓包工具 :
tcpdump
tcpdump -nn -i ens33 port 80 #抓指定网卡和端口的包
tcpdump -i ens33 -nn not port 22 and not port 80 and not host 192.168.1.120 #不抓指定端口、IP的包
tcpdump -nn -i ens33 -c 100 #指定抓100个包
tcpdump -nn -i ens33 -w 120.txt #把抓到的包,写入到120.txt文档中
tcpdump -r 120.txt #读取写入文档里面的抓的包

                 wireshark           (yum install -y wireshark)tshark -nn -i ens33                      #抓网卡33的包tshark -i ens33 -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"     #查看某个I网址IP地址的网络流量

补充 :

查看CPU核数
cat /proc/cpuinfo
iscpu

buffer和cached的区别
buffer : 这部分内存是从CPU产生即将写入到磁盘里去的那部分数据
cached : 这部分数据是先从磁盘里读出来,然后临时存到内存里的那一部分数据。

cpu监控之二:dstat
dstat 2 10(每2秒采集一次共采集10次)

结果说明:

cpu:hiq、siq分别为硬中断和软中断次数

system:int、csw分别为系统的中断次数(interrupt)和上下文切换次数(context switch)。

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。

这是默认输出显示的信息:

CPU状态:CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。

磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。

网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。

分页统计:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。

系统统计:这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。

默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。

大多数常用的参数有这些:

-l :显示负载统计量
-m :显示内存使用率(包括used,buffer,cache,free值)
-r :显示I/O统计
-s :显示交换分区使用情况
-t :将当前时间显示在第一行
–fs :显示文件系统统计数据(包括文件总数量和inodes值)
–nocolor :不显示颜色(有时候有用)
–socket :显示网络统计数据
–tcp :显示常用的TCP统计
–udp :显示监听的UDP接口及其当前用量的一些动态数据
-c:表示只显示我们的CPU信息
-p:表示只显示我们的进程信息
-n:表示只显示我们的网络信息

例子:
查看全部内存都有谁在占用:

dstat -g -l -m -s --top-mem
显示一些关于CPU资源损耗的数据:
dstat -c -y -l --proc-count --top-cpu
如何输出一个csv文件

想输出一个csv格式的文件用于以后,可以通过下面的命令:
#dstat –output /tmp/sampleoutput.csv -cdn

strace命令
strace常用来跟踪进程执行时的系统调用和所接收的信号。

通用的完整用法:

strace -o output.txt -T -tt -e trace=all -p 28979
上面的含义是 跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面。
查看在启动 dcopserver时到底程序做了什么:

#strace -f -F -o ~/dcop-strace.txt dcopserver
这里 -f -F选项告诉strace同时跟踪fork和vfork出来的进程,-o选项把所有strace输出写到~/dcop-strace.txt里 面,dcopserver是要启动和调试的程序。

mpstat命令
mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。报告CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
(1)显示所有的CPU信息:mpstat -P ALL 1(间隔为1s)

#mpstat -P ALL 5 2
显示了系统中 CPU 的各种统计信息。–P ALL 选项指示该命令显示所有 CPU 的统计信息,
而不只是特定 CPU 的统计信息。参数 5 2 指示该命令每隔 5 秒运行一次,共运行 2 次。
以上输出首先显示了所有 CPU 的合计指标,然后显示了每个 CPU 各自的指标。最后,在结尾处显示所有 CPU 的平均值。
列值的含义:
%user 表示处理用户进程所使用 CPU 的百分比。用户进程是用于应用程序(如 Oracle 数据库)的非内核进程。
在本示例输出中,用户 CPU 百分比非常低。

%nice 表示使用 nice 命令对进程进行降级时 CPU 的百分比。在之前的部分中已经对 nice 命令进行了介绍。简单来说,nice 命令更改进程的优先级。

%system 表示内核进程使用的 CPU 百分比

%iowait 表示等待进行 I/O 所使用的 CPU 时间百分比

%irq 表示用于处理系统中断的 CPU 百分比

%soft 表示用于软件中断的 CPU 百分比

%idle 显示 CPU 的空闲时间

%intr/s 显示每秒 CPU 接收的中断总数

(2)显示ID为1的CPU信息:mpstat -P 1 1(间隔为1s);

结果说明:

(1)user:在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程,值为 (usr/total)*100;

(2)nice:在internal时间段里,nice值为负进程的CPU时间(%),值为(nice/total)*100;

(3)system:在internal时间段里,核心时间(%),值为(system/total)*100;

(4)iowait:在internal时间段里,硬盘IO等待时间(%),值为(iowait/total)*100;

(5)irq:在internal时间段里,硬中断时间(%),值为(irq/total)*100;

(6)soft:在internal时间段里,软中断时间(%),值为(softirq/total)*100;

(7)idle:在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%),值为(idle/total)*100;

(8)intr/s:在internal时间段里,每秒CPU接收的中断的次数,值为(intr/total)*100;

Linux系统中的load average
linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。

Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。

上边0.31,0.30,0.31表示

第一位0.03:表示最近1分钟平均负载
第二位0.02:表示最近5分钟平均负载
第三位0.00:表示最近15分钟平均负载

注:linux系统是5秒钟进行一次Load采样

vmstat命令–监控CPU 性能分析

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具。该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的与CPU相关的信息包括:
(1)多少任务在运行
(2)CPU使用的情况
(3)CPU收到多少中断
(4)发生多少上下文切换
使用方法:
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

root@ubuntu:~# vmstat 2 1 procs -----------memory---------- —swap–
-----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 3498472 315836
3819540 0 0 0 1 2 0 0 0 100 0

2表示每个两秒采集一次服务器状态,1表示只采集一次。

Linux下vmstat输出释疑:

 Vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。当这个值超过了CPU数目,就会出现CPU瓶颈了。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比。空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常。否则,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
swap
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

参考链接 :
https://www.cnblogs.com/duanxz/p/6274276.html
https://www.cnblogs.com/duanxz/p/6273161.html
https://www.cnblogs.com/duanxz/p/6012773.html
SAR命令 :https://www.cnblogs.com/duanxz/p/6012742.html
iostat命令详解 IO性能分析 :https://www.cnblogs.com/duanxz/p/6012671.html

监控Linux系统状态的命令相关推荐

  1. 监控linux系统状态

    监控linux系统状态 监控介绍 安装zabbix4.0 监控客户机 解决中文名称不能写数据库的问题 解决图形中乱码 zabbix邮件告警 zabbix监控Nginx zabbix监控Tomcat z ...

  2. Linux系统状态查看命令2

    2019独角兽企业重金招聘Python工程师标准>>> 10月24日任务 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 li ...

  3. linux中检测用户信息的命令是,Linux中系统状态检测命令

    1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...

  4. 使用top命令监控linux系统cpu变化

    #!/bin/bash #使用top命令监控linux系统cpu变化#取系统当前时间(以追加的方式写入文件>>) date >> /home/monitor_script/cp ...

  5. Linux系统使用ss命令查看端口状态

    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 ...

  6. 关于Linux的那些事儿--系统状态检测命令

    关于Linux的那些事儿–系统状态检测命令 1.ifconfig命令:用于获取网卡配置与网络状态等信息.格式:ifconfig [网卡名] [参数]. ether:物理地址 flags=4163< ...

  7. Linux系统状态检测及进程控制--2

    Linux系统状态检测及进程控制--1(http://crushlinux.blog.51cto.com/2663646/836481) 4.僵死(进程已终止,但进程描述符存在,直到父进程调用wait ...

  8. Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令

    Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 文章目录 Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 info server info clie ...

  9. Linux系统中top命令详解

    在Linux系统中top命令是常用的分析性能的工具,能够实时监控系统中各个进程资源占用的情况,这和windows中任务管理器有点类似. top参数详解 第一行,任务队列信息,同 uptime 命令的执 ...

最新文章

  1. ^和$ emeditor
  2. 网络推广外包专员浅析货拉拉坠车事件后宣布整改增加录音录像功能
  3. Python处理图像五个有趣场景,很实用!
  4. 详解C调用lua脚本效率测试
  5. 创建型模式二:工厂方法模式
  6. 陈华钧 | 知识图谱构建,将成为智能金融的突破口
  7. 魔兽8.0玩家最多服务器,魔兽世界8.0一上线玩家就挤爆服务器!然而暴雪还藏2个大招在后面...
  8. 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?
  9. github博客突然无法访问_紫菜头博客被DNS污染攻击关站
  10. python中os.path.basename的使用
  11. 如何利用数据挖掘结束单身
  12. 【转】如何更改VS2005的启动环境
  13. 计算机组成原理问题集合
  14. 大厂面试必问!疯狂Java讲义第五版pdf在线阅读
  15. 哪家的云游戏服务器好?如何选择云游戏服务器?
  16. 总结在mac电脑上安装brew
  17. 用Python批量替换更改掉txt文本的内容
  18. 手游测试常见10个坑及填坑建议
  19. visibility 和 display 的区别
  20. 【Android】打包生成APK教程

热门文章

  1. python数据分析实例_Python数据分析及可视化实例之爬虫源码(05)
  2. GitLab5.2 创建项目故障
  3. Eclipse用法和技巧五:生成说明文档2
  4. 02HTML 超链接与图像标记各是什么,【HTML篇】3.HTML的图片标签、超链接标签
  5. mysql 权限信息存储库_springboot-security02FromDB 权限管理(用户信息和角色信息保存在数据库)详解...
  6. C8051汇编语言递归,基于C8051F310单片机的LED灯控制器汇编语言程序调试
  7. python框架实例,从零构建一个简单的 Python 框架
  8. php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数
  9. boolan 设计模式笔记
  10. gitlab 项目分支管理的一种策略