监控Linux系统状态的命令.docx

上传人:b****4 文档编号:3450528 上传时间:2022-11-23 格式:DOCX 页数:14 大小:1.75MB
下载 相关 举报
监控Linux系统状态的命令.docx_第1页
第1页 / 共14页
监控Linux系统状态的命令.docx_第2页
第2页 / 共14页
监控Linux系统状态的命令.docx_第3页
第3页 / 共14页
监控Linux系统状态的命令.docx_第4页
第4页 / 共14页
监控Linux系统状态的命令.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

监控Linux系统状态的命令.docx

《监控Linux系统状态的命令.docx》由会员分享,可在线阅读,更多相关《监控Linux系统状态的命令.docx(14页珍藏版)》请在冰豆网上搜索。

监控Linux系统状态的命令.docx

监控Linux系统状态的命令

监控Linux系统状态的命令

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

w/uptime命令查看系统负载:

w/uptime最后面三个数字表示1分钟,5分钟,15分钟平均有多少进程占用CPU。

某一时刻1颗CPU只能有一个进程在使用其资源

监控Linux系统状态的命令2:

top,查看CPU

top命令:

top回车就可以进入到top界面。

每3秒刷新一次。

默认按CPU百分比排序,可以按M键按照内存使用率大小排序。

按数字1,可以显示所有的CPU使用率详情

监控Linux系统状态的命令3:

free,查看内存状态

free命令:

free查看内存和swap使用情况,关注最后一列的available,这个数字是真正剩余的物理内存大小。

注意:

直接执行free,单位是k或者字节

free-m#以兆为单位

free-k#显示的是默认的单位

监控Linux系统状态的命令4:

iostat监控磁盘:

iostat/sar—>yuminstall-ysystat

常见使用命令:

iostat-dx1#每隔一秒钟只查看读写速度一次,更详细

iostat-dx15#每隔一秒钟刷新一次,刷新5次

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

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

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

综合工具,断定瓶颈点:

vmstat1#

vmstat110#每秒钟打印一次,打印10次。

关注:

r、b、si、so、bi、bo、id、wa

监控Linux系统状态的命令5:

vmstat,可以同时查看磁盘、CPU、内存,三个

内存不足,现象:

swpd下面的所有数字显示非0,或者si、so变成非0数字;

注意:

si相当于swapin---->从swap出去进入到内存里

so相当于swapout---->从内存出去进入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-nDEV110#只查看网卡流量,每一秒钟刷新一次,刷新10次。

sar-nDEV-f/var/log/sa/sa21#查看21号的网卡流量

sar-b#查看磁盘容量

sar-q#系统负载,ldavg-1表示系统负载;ldavg-5查看历史系统负载

yuminstall-yepel-release#安装扩展源

yuminstall-ynload#

nload#直接输入nload命令,动态显示网卡流量,按上下的方向键,切换网卡。

ethtoolens33#查看网卡ens33的具体信息

mii-toolens33#直接显示网卡的具体信息

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

查看28号流量情况

因为只有一个网卡,所以只显示一个,

rxpck/s表示网卡接收数据包的数量

txpck/s表示网卡传送数据包的速度/流量

rxkB/s表示网卡接收数据包的数量

查看磁盘负载

Sar命令查看系统负载

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

Supportedports:

支持10M、100M、1000M;全双工,半双工;

Speed:

传输速度

Linkdetected:

目前的连接状态

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

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

小常识:

bit比特(带宽单位)

Byte字节(速度传输单位)

100Mb带宽单位:

Mbit/MByte8bit=1Byte,下载速度2MB/s,换成带宽速度2*8=16Mbit,100Mbit换成下载速度12.5MB/s.

监控Linux系统状态的命令7:

ps查看进程:

psaux、ps-elf、ps-eLf(查看线程)

STAT

SSleep

RRunning

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-iens33port80#抓指定网卡和端口的包

tcpdump-iens33-nnnotport22andnotport80andnothost192.168.1.120#不抓指定端口、IP的包

tcpdump-nn-iens33-c100#指定抓100个包

tcpdump-nn-iens33-w120.txt#把抓到的包,写入到120.txt文档中

tcpdump-r120.txt#读取写入文档里面的抓的包

wireshark(yuminstall-ywireshark)

tshark-nn-iens33#抓网卡33的包

tshark-iens33-n-ta-Rhttp.request-Tfields-e"frame.time"-e"ip.src"-e"http.host"-e"http.request.method"-e"http.request.uri"#查看某个I网址IP地址的网络流量

 

补充:

查看CPU核数

cat/proc/cpuinfo

buffer和cached的区别

buffer:

这部分内存是从CPU产生即将写入到磁盘里去的那部分数据

cached:

这部分数据是先从磁盘里读出来,然后临时存到内存里的那一部分数据。

cpu监控之二:

dstat

dstat210(每2秒采集一次共采集10次)

结果说明:

cpu:

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

system:

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

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

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

CPU状态:

CPU的使用率。

这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。

如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。

当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。

磁盘统计:

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

网络统计:

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

分页统计:

系统的分页活动。

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

系统统计:

这一项显示的是中断(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格式的文件用于以后,可以通过下面的命令:

#dstat–output/tmp/sampleoutput.csv-cdn

strace命令

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

通用的完整用法:

strace-ooutput.txt-T-tt-etrace=all-p28979

上面的含义是跟踪28979进程的所有系统调用(-etrace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面。

查看在启动dcopserver时到底程序做了什么:

#strace-f-F-o~/dcop-strace.txtdcopserver

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

mpstat命令

mpstat是MultiProcessorStatistics的缩写,是实时系统监控工具。

报告CPU的一些统计信息,这些信息存放在/proc/stat文件中。

在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

(1)显示所有的CPU信息:

mpstat-PALL1(间隔为1s)

#mpstat-PALL52

显示了系统中CPU的各种统计信息。

–PALL选项指示该命令显示所有CPU的统计信息,而不只是特定CPU的统计信息。

参数52指示该命令每隔5秒运行一次,共运行2次。

以上输出首先显示了所有CPU的合计指标,然后显示了每个CPU各自的指标。

最后,在结尾处显示所有CPU的平均值。

列值的含义:

%usr表示处理用户进程所使用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-P11(间隔为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系统中的loadaverage

linux系统中的Load对当前CPU工作量的度量。

简单的说是进程队列的长度。

LoadAverage就是一段时间(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是VirtualMeomoryStatistics(虚拟内存统计)的缩写,是实时系统监控工具。

该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。

vmstat反馈的与CPU相关的信息包括:

(1)多少任务在运行

(2)CPU使用的情况

(3)CPU收到多少中断

(4)发生多少上下文切换

使用方法:

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

root@ubuntu:

~#vmstat21procs-----------memory----------—swap–

-----io-----system------cpu----rbswpdfreebuffcachesisobiboincsussyidwa1003498472315836

3819540000120001000

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

Linux下vmstat输出释疑:

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作为buffercache的内存数量,一般对块设备的读写才需要缓冲。

cache:

作为pagecache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

swap

si由内存进入内存交换区数量。

so由内存交换区进入内存数量。

IO

bi从块设备读入数据的总量(读磁盘)(每秒kb)。

bo块设备写入数据的总量(写磁盘)(每秒kb)

这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1