Linux日常管理技巧(1):w,top,vmstat,sar命令

一、w命令

linux管理员最常用的命令就是这个 w 了,该命令显示的信息还是蛮丰富的。第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载
第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。其实,在这些信息当中,我们最应该关注的应该是第一行中的 ‘load average:’ 后面的三个数值。

第一个数值表示1分钟内系统的平均负载值;
第二个数值表示5分钟内系统的平均负载值;
第三个数值表示15分钟系统的平均负载值。

这几个个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系,如果服务器cpu数量为8,那么这个值若小于8,就说明当前服务器没有压力,否则就要关注一下了。

那么我们怎么查看cpu核心数量呢?

# cat /proc/cpuinfo

这里的processor计数从0开始,也就是说一个显示为0,二个显示为1

查看当前系统有几个cpu,我们可以使用这个命令:

grep -c ‘processor‘ /proc/cpuinfo

二、vmstat命令:监控系统的状态

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
命令选项:

-a:显示活动内页;
-f:显示启动后创建的进程总数;
-m:显示slab信息;
-n:头信息仅显示一次;
-s:以表格方式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输出信息的单位。

具体用法:

# vmstat           //显示当前系统状态
# vmstat 2        //每隔2秒输出一次运行状态,可以是其他任意数值,ctrl+c终止
# vmstat 2 5     //每隔2秒输出一次运行状态,输出5次后终止


vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu.。请重点关注一下r、b、si、 so、bi、bo、wa几列。
procs显示进程的相关信息:

r (run):表示运行或等待CPU时间片的进程数。说明:不要误以为等待CPU时间片意味着这个进程没有进行,实际上某一时刻一个CPU只能有一个进程,其他进程只能排着队等着,此时这些排队等待CPU资源的进程依然是运行状态。该数值如果长期大于服务器CPU的个数,则说明CPU资源不够用了。
b (block):表示等待资源的进程数,这个资源指的是I/O、内存等。举个例子:当磁盘读写非常频繁时,写数据就会非常慢,此时CPU运算很快就结束了,但进程需要把计算的结果写入磁盘,这样进程的任务才算完成,那此时这个进程只能慢慢地等待,这样这个进程就是这个b状态。该数值如果长时间大于1,则需要关注一下。

memory显示内存的相关信息:

swpd:表示切换到交换分区中的内存数量,单位为KB。
free:表示当前空闲的内存数量,单位为KB。
buff:表示(即将写入磁盘的)缓冲大小,单位为KB。
cache:表示(从磁盘中读取的)缓存大小,单位为KB。

swap显示内存的交换情况:

si:表示由交换区写入内存的数据量,单位为KB。
so:表示由内存写入交换区的数据量,单位为KB。

io显示磁盘的使用情况:

bi:表示从块设备读取数据的量(读磁盘),单位为KB。
bo:表示从块设备写入数据的量(写磁盘),单位为KB。

system显示采集间隔内发生的中断次数:

in:表示在某一时间间隔内观测到的每秒设备的中断次数。
cs:表示每秒产生的上下文切换次数。

cpu显示CPU的使用状态:

us:显示用户下花费CPU的时间百分比。
sy:显示系统花费CPU的时间百分比。
id:表示CPU处于空闲状态的时间百分比。
wa:表示I/O等待所占用CPU的时间百分比。
st:表示被偷走的CPU所占百分比(一般都为0,不用关注)

以上所介绍的各个参数中,经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是要经常参考的对象。如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。

三、top命令:显示进程所占系统资源


这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。具体每个字段含义参考:http://man.linuxde.net/top
在这些状态信息中,需要关注的值有load average,tasks,%CPU,%MEM,COMMAND。

RES表示进程占用的内存数量。
shift+m表示按内存使用量排序。
shift+p表示按cpu使用量排序。
按数字1可以列出每个cpu的占用量。
top -c显示详细的进程信息。
top -bn1静态显示所有进程。
q退出。
kill+PID杀死程。

四、sar命令:监控系统状态

sar 命令很强大,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你系统没有安装这个命令,请使用 yum install -y sysstat 命令安装。初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了,因为不用去查询那个库文件)。它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月。sar命令很复杂,这里说下两个简单的方面,sar命令的用法可以sar -h获取帮助,或者参考:http://man.linuxde.net/sar
1)查看网卡流量

# sar -n DEV

IFACE:表示设备名称.
rxpck/s:表示每秒进入收取的包的数量有多少。
txpck/s:表示每秒发送出云的包的数量有多少。
rxkB/s:表示每秒收取的数据量(单位为KB)。
txkB/S:表示每秒发送的数据量。

剩下后面几列不需要关注。如果有一天你所管理的服务器丢包非常严重,那么你就应该看一看这个网卡流量是否异常了,如果rxpck/s 那一列的数值大于4000,或者rxbyt/s那列大于5,000,000则很有可能是被攻击了,正常的服务器网卡流量不会高于这么多,除非是你自己在拷贝数据。
2)实时查看网卡流量

# sar -n DEV 2 5                          //每隔2秒输出一次网卡流量状态,5次后终止


3)使用-f选项查看某一天的网卡流量历史,后面跟文件名。(在Red Hat或者CentOS发行版中,sar的库文件一定在/var/log/sa/目录下的saxx目录,xx代表日期

4)查看历史负载

五、nload命令:查看网卡流量

sar虽然可以查看网卡流量,但是不够直观,还有一个更好用的工具,那就是nload。
安装nload:

#yum install -y epel-release          //先安装扩展源
#yum install -y nload                   //因为nload依赖于epel-release。

输入nload:

Incoming为进入网卡的流量。
Outgoing为网卡出去的流量。
主要关注Curr那行的数据,其单位也可以动态自动调整。
按q退出该界面。

原文地址:http://blog.51cto.com/3069201/2064000

时间: 2024-10-03 03:48:17

Linux日常管理技巧(1):w,top,vmstat,sar命令的相关文章

Linux日常管理技巧(3):Linux网络相关和防火墙

一.Linux网络相关 1. ifconfig 查看网卡IP ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了. [[email protected] ~]# ifconfig //直接输入该命令即可查看网卡 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine

linux日常管理常用命令--w

linux日常管理常用命令--w 命令:w(linux管理员最常用的命令) [[email protected] ~]# w 14:45:41 up 2 min,  2 users,  load average: 0.10, 0.10, 0.04 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT root     tty1     -                14:44   54.

十四、w、vmstat、top、sar命令

第五章 Linux 系统日常运维管理 1,查看系统负载命令. #w 08:47:36 up  3:25,  2 users,  load average: 0.00, 0.00, 0.00  (#uptime 也显示这一行) USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT root     tty1     -                05:23    1:38m  0.02s

查看系统负载 w top vmstat,sar

查看系统负载 1.#w 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载;第二行开始以及下面所有 的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等. load average 平均负载 load average后跟三个数值,第一个数值表示1分钟内系统的平均负载值(即1分钟之内有多少个进程在使用CPU ):第二个数值表示5分钟内系统的平均负载值:第三个数值表示15分钟系统的平均负载值.意义是单位时间段 内CPU活动进程数.值越大就说明服务器压力越

Linux日常管理-复习练习

1.查看几个cpu和cpu核数 # cat /proc/cpuinfo 2.查看系统负载, load average w,top        1分钟.5分钟.15分钟内的平均负载. 3.vmstat 中r/b/si/so/bi/bo的含义 r 运行和等待cpu时间片的进程数,大于cpu个数,则cpu不够用 b 等待资源进程数,I/O,内存,长时间大于1,则内存等资源不足 si 交换区写入内存的数据量 so 内存写入交换区的数据量 bi 硬盘写入内存的数据量(读磁盘) bo 内存写入硬盘的数据量

Windows Server服务器日常管理技巧

高效管理服务器一直离不开有效的服务器管理技巧,尽管你已经掌握了不少这方面的技巧,但服务器还有许许多多的技巧在等着你的总结,等着你的挖掘;这不,下面的一些服务器管理窍门就是笔者在最近的工作中总结出来的,相信有不少是你很少遇到过的! 拒绝服务器重新启动 一般情况下,在Windows 2003 Server系统中安装完补丁程序后,系统总会提示你要重新启动一下服务器.可是许多急性子的朋友,他们往往无法容忍Windows 2003 Server服务器"慢吞吞"的启动操作,于是希望打完安全补丁之后

linux日常管理-vmstat命令

系统负载用w查看.是什么原因造成了系统负载.查看系统负载状态 命令:vmstat vmstat就查看一次 vmstat 1 每秒钟更新一次.按ctrl+c取消. vmstat 1 5 每秒钟更新一次,更新5次,自动取消. procs r 表示一秒钟有多少任务在run状态. b 被堵塞的任务.磁盘比cpu速度慢,带宽跑满,会被阻塞.io阻塞的任务. memory swpd 有多少数据量被交换.单位kb buff cache swap 大于0说明内存不够 si 进入到内存的 so 从内存出来的 io

linux日常管理-top动态查看负载

动态查看负载命令,具体哪个程序,哪个进程造成的系统负载. top 回车查看 3秒更新一次 第一行和uptime和w第一行显示的一样. CPU使用率,us sy 内存相关,Mem 一共多少,使用了多少,还剩多少,有多少buffers %CPU cpu使用率最高达排前面. shift+m %MEM 按内存使用率排序. 按Q键退出 PID 进程的id号,在ls/proc/可以看到,kill+pid杀死进程 等 USER 以哪个用户运行的这个进程 PR [0~39]进程优先级 数值越小优先级越高 NI

Linux 系统监控、诊断工具-top,vmstat,iostat,iotop

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 很高,%us 偏低: 从上图我们大致可以推断 IO