Linux下常用的负载查看命令

释放双眼,带上耳机,听听看~!
Linux下常用的负载查看命令

对于经常VPS的同学来说,肯定需要掌握一些VPS命令,大叔这里整理了一些常用的Linux负载查看命令。

uname,lsb_release,uptime,w,free,top,vmstat,iostat,netstat,tcpdump,ps等

系统版本/内核版本

查看内核版本

uname -a
//显示结果如下
Linux fklds 4.18.5-1.el7.elrepo.x86_64 #1 SMP Fri Aug 24 11:35:05 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux


或者

cat /proc/version
//结果
Linux version 4.18.5-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)) #1 SMP Fri Aug 24 11:35:05 EDT 2018

查看发行版本

lsb_release -a
//一般系统都有安装,如果没有的话需要先安装模块
yum install lsb -y
或
apt-get install lsb -y
//结果一般为
LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.5.1804 (Core) 
Release:	7.5.1804
Codename:	Core

也可以使用 cat /etc/issue

cat /etc/redhat-release
//结果
CentOS Linux release 7.5.1804 (Core)

快速查看负载

w

w
//结果
 16:34:21 up 7 days, 16 min,  1 user,  load average: 0.00, 0.05, 0.08
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
centos   pts/0    218.51.232.170      15:23    1.00s  0.02s  0.00s sshd: centos [priv] 

第一行结果内容分别表示:现在时间,开机到现在时间7 days, 16 min,当前在线用户,以及1,5,15分钟内的负载

第二行结果表示:当前用户,登录终端,登录IP ,登录时间,空闲时间,当前终端所执行的所有进程时间总和,当前进程占用时间,当前进程。


uptime

uptime
//结果16:39:56 up 7 days, 21 min,  1 user,  load average: 0.00, 0.01, 0.05

w 命令的第一行

CPU/内存/IO/网络

free

显示内存的使用信息,默认是按kb显示,使用-m参数可以按M为单位显示

free -m
//结果
              total        used        free      shared  buff/cache   available
Mem:            479         254         71       1         154         192
Swap:          1024         126         898

第一行分别代表,全部,已使用,空闲,回收,缓存中,对程序来说的可用内存大小,第二行表示的则是swap的大小,即虚拟内存。


vmstat

vmstat
procs -----------memory-------------swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0 121600  84292    0   193476  0    0     8     7   33   12 0  0 100 0  0


r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free  空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff  Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

in 每秒CPU的中断次数,包括时间中断

cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。


top

top命令可以说是最常用的一个命令,面且默认是每3秒刷新一次。我们可以通过-d 选项来更改刷时间

#top -d 1 表示一秒钟刷新一次

使用TOP后,会进入一个专门的界面,此时无法进行普通shell操作,只有top下的命令可以执行,几个常用的命令。

q:退出

排序:默认top以CPU占用百分比排序,大写状态下按以下字母或者直接按SHITF+以下字母

P:CPU占用百分比排序,%CPU

M:占据内存百分比排序,%MEM

T:累计占据CPU时间排序,TIME+

终止指定进程:

k:直接输入k,在输入进程的PID号

修改刷新时间间隔:

s:按s直接输入数字,1就表示1秒刷新一次

TOP界面说明

top - 16:10:34 up 9 days, 23:52,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 120 total,   1 running,  74 sleeping,   0 stopped,   0 zombie
%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
KiB Mem :   491500 total,    83608 free,   214036 used,   193856 buff/cache
KiB Swap:  1049596 total,   927996 free,   121600 used.   242248 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                      
    1 root      20   0   43464   3536   2536 S  0.0  0.7   0:05.55 systemd                                                                                                                                      
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.07 kthreadd                                                                                                                                     
    3 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_gp                                                                                                                                       
    4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_par_gp                                                                                                                                   
    6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:0H-kb                                                                                                                              
    8 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_wq                                                                                                                                 
    9 root      20   0       0      0      0 S  0.0  0.0   0:03.68 ksoftirqd/0                                                                                                                                  
   10 root      20   0       0      0      0 I  0.0  0.0   0:02.34 rcu_sched                                                                                                                                    
   11 root      20   0       0      0      0 I  0.0  0.0   0:00.00 rcu_bh                                                                                                                                       
   12 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                  
   13 root      rt   0       0      0      0 S  0.0  0.0   0:01.98 watchdog/0                                                                                                                                   
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 cpuhp/0                                                                                                                                      
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                                                                                    
   16 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 netns                                                                                                                                        
   17 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kauditd                                                                                                                                      
   18 root      20   0       0      0      0 S  0.0  0.0   0:00.00 xenbus                                                                                                                                       
   19 root      20   0       0      0      0 S  0.0  0.0   0:00.01 xenwatch                                                                                                                                     
   21 root      20   0       0      0      0 S  0.0  0.0   0:00.21 khungtaskd                                                                                                                                   
   22 root      20   0       0      0      0 S  0.0  0.0   0:00.00 oom_reaper                                                                                                                                   
   23 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 writeback                                                                                                                                    
   24 root      20   0       0      0      0 S  0.0  0.0   0:00.03 kcompactd0   

第一行同上面的uptime

第二行显示的是进程数,分别为当前进程总数,正在运行进程,睡眠进程,停止的进程,僵尸进程

第三行表示CPU占用时间的百分比,分别为当前用户的,内核时间百分比,负优先级进程,空闲时间,IO等待状态,硬中断状态,软中断状态

第四行表示内存,分别是总内存,空闲内存,使用中的,缓存状态的

第五行表示swap即交换空间:分别是总数量,空闲,已用,可有内存

下面的内容则是动态的一张列表,列表的表头如下:

PID:进程ID

USER:进程的所有者

PR:进程的优先级

NI:nice值

VIRT:占用的虚拟内存

RES:占用的物理内存

SHR:使用的共享内存

S:进行状态 S:休眠 R运行 Z僵尸进程 N nice值为负

%CPU:占用的CPU

%MEM:占用内存

TIME+: 占用CPU的时间的累加值

COMMAND:启动命令


iostat

硬盘状态显示,需要单独安装

yum install sysstat 

基本命令

iostat 1 10 //每秒一次,总共10次
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda         0.00   0.00     0.00          0          0
xvda         0.00   0.00     0.00          0          0
....



分别表示 设备每秒传输次数,每秒读取量,写入量,总读取,总写入


netstat


tcpdump


ps等

给TA打赏
共{{data.count}}人
人已打赏
相关工具

Linux VPS 系统测试脚本 Bench Zbench

2018-9-27 15:55:02

LinuxWordPress

宝塔面板伪静态的一个小坑

2018-10-15 15:04:20

免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站除大叔原创外的资源均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请通过私信与我们联系处理。敬请谅解!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索