Linux日常维护(w,vmstat,top,sar,nload命令)

简介:

linux日常运维管理技巧

1.使用w查看系统负载

[root@abc ~]# w

w: 60 column window is too narrow            (这个意思是窗口太小,最大化窗口就Ok)


[root@abc ~]# w

 13:46:43 up 2 min,  1 user,  load average: 0.12, 0.08, 0.04   

当前系统时间 启动多长时间 登陆了多少用户 系统负载(单位时间内,使用cpu活动的进程):1分钟 5分钟 15分钟


USER     TTY      FROM          LOGIN@   IDLE       JCPU   PCPU WHAT

                          (登陆时间)(空闲多时间)


root     pts/0    192.168.52.1     13:44    3.00s      0.00s  0.00s w


[root@abc ~]# cat /proc/cpuinfo                  (查看cpu信息)

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数


  • processor     逻辑处理器的id。

  • physical id    有几个cpu处理器

  • core id       每个内核的id。(有多少个内核)

  • cpu cores     一个cpu处理器中的内核数量。

  • siblings      一个cup处理器中的逻辑处理器的数量。


2.vmstat (Virtual Memory)查看虚拟内存使用的工具,使用vmstat来判定系统的瓶颈在哪里


二、虚拟内存的运行原理

在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。


三、使用说明

vmstat 1 (动态显示系统信息,1秒钟一次)

进程:

r(run)     有多少进程再跑     

b(block)   进程被cpu以外的(网络,内存)原因在等待 


内存:

swapd       交换分区,如果数字频繁的变化,说明内存和虚拟分区正在频繁的交换数据,内存不够用了

free       可用内存大小


swap分区:

si (in)     有多少kb的数据从swap进入到内存里去

so (out)    有多少kb的数据写入到swap里去


磁盘:

bi         从磁盘里读数据   

bo         向磁盘里写数据 (这个数据如果很大,表示正在频繁的读写磁盘,b会增加,因为导致会有很多进程等待磁盘)


cpu:

us         用户派的资源占用cpu多少百分比

sy         系统本身的进程或服务占用cpu百分比

id         空闲cpu的百分比

wa         有多少进程等待cpu的百分比


3.top    动态的查看进程使用资源状况


top - 14:44:33 up  1:00,  1 user,  load average: 0.00, 0.01, 0.05         (第一行和w的第一行一样)

Tasks:  86 total,   1 running,  85 sleeping,   0 stopped,   0 zombie     

   (总共多少进程,多少个在runing,多少个在休眠,多少个已经停止,多少个僵尸进程(主进程被以外禁止,留一些子进程))


%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,  100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

us用户进程占百分比

sy系统进程占百分比

ni更改过优先级进程占百分比

id等待进程占百分比

被偷走的cpu百分比(虚拟化,子机))


KiB Mem :  1008392 total,   718700 free,   131380 used,   158312 buff/cache

物理内存使用情况  总共内存   多少空闲     使用多少内存   缓存的内存量


KiB Swap:  2097148 total,  2097148 free,        0 used.   712768 avail Mem

swap内存使用情况

total — 交换区总量(2GB)
used — 使用的交换区总量(2.5M)
free — 空闲交换区总量(2GB)
cached — 缓冲的交换区总量(4GB


PID     USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND  

PID   用户pid  

USER  用户名    

PR    进程优先级

NI    nice值,负值表示高于优先级,正值表示低于优先级

VIRT   进程使用虚拟内存总量

RES    进程使用的,未被换出的物理内存大小

SHR    共享内存大小

S     进程状态,D=不可中断的睡眠状态。R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU    CPU占用百分比

%MEM    进程使用的物理内存百分比

TIME+一  进程使用的物理内存百分比

COMMAND  进程名称(命令名/命令行)

(默认根据%CPU来排序,如果想根据%MEM内存来排序,按大写的M即可,按大写的P换回%CPU排序,数字1 列出指定CPU的使用情况,q退出)


top  -c     可以在最后一行显示COMMAND,用来查看具体的命令,全局的路径

top  -bn1   静态的把所有的进程信息显示出来,在写脚本的时候适合使用


4.sar 监控系统状态 (被称为Linux系统里的瑞士×××)

[root@abc ~]# yum install sysstat  -y        安装sar


(每十分钟会把系统的状态过滤一遍保存在/var/log/sa里,生成以当天日期为名的saXX文件。第二天会生成一个以昨天日期为名的sarXX文件,saXX文件是二进制文件,不能用cat直接查看,但是sarXX可以


[root@abc sa]# sar -n DEV 1 5                   (查看网卡的流量,每一秒打印一次,一共打印5次)

Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)


15时40分36秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

15时40分37秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时40分37秒     ens33      2.00      2.00      0.16      0.24      0.00      0.00      0.00


  •                              时间

  • IFACE                    网卡名 

  • rxpck/s                   接收到的数据包           几千还是正常的,上万或者几十万基本确定被攻击了

  • txpck/s                  发送出去的数据包

  • rxkB/s                  接受到的数据量

  • txkB/s                   发送出去的数据量


[root@abc sa]# sar -n DEV -f /var/log/sa/saXX      (可以查看历史数据,日期就是XX的内容,历史文件最多保存一个月)

Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)

15时20分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

15时30分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时30分01秒     ens33      0.04      0.04      0.00      0.00      0.00      0.00      0.00

15时40分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时40分01秒     ens33      0.38      0.24      0.03      0.04      0.00      0.00      0.00

15时50分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时50分01秒     ens33      0.14      0.09      0.01      0.01      0.00      0.00      0.00

平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     ens33      0.19      0.12      0.02      0.02      0.00      0.00      0.00


[root@abc sa]# sar -q                       (-q查看系统负载。和w命令查看效果一样)

Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)


15时20分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked

15时30分01秒         1       104      0.00      0.01      0.05         0

15时40分01秒         1       104      0.00      0.01      0.05         0

15时50分01秒         1       103      0.00      0.01      0.05         0

平均时间:         1       104      0.00      0.01      0.05         0

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载


[root@abc sa]# sar -b                       (-b查看磁盘读写信息)

Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_(1 CPU)


15时20分01秒       tps      rtps      wtps   bread/s   bwrtn/s

15时30分01秒      0.49      0.00      0.48      0.05     22.21

15时40分01秒      0.10      0.00      0.10      0.07      1.91

15时50分01秒      0.05      0.00      0.05      0.00      0.45

平均时间:      0.21      0.00      0.21      0.04      8.19

  • tps:每秒钟物理设备的 I/O 传输总量

  • rtps:每秒钟从物理设备读入的数据总量

  • wtps:每秒钟向物理设备写入的数据总量

  • bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

  • bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

5.nload      监察网卡流量

[root@abc sa]# yum install -y epel-release

[root@abc sa]# yum install nload -y



[root@abc sa]# nload                 显示网卡实时速度的页面

1.png

上半部分是:Incoming也就是进入网卡的流量,下半部分是:Outgoing,也就是从这块网卡出去的流量

第一行分别是 网卡名,ip       <-  ->  左右方向键分别可以切换网卡

当前值 (Curr)

平均值 (Avg)

最小值 (Min)

最大值 (Max)

总和流量(Ttl)











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2044763,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
166 8
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
62 14
Linux 10 个“who”命令示例
|
13天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
41 8
|
23天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
121 20
|
23天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
52 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
43 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
2月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
183 3
|
2月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
86 4
|
2月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
43 1