负载命令

命令w

[[email protected] ~]# w

09:03:29 up 8:14,  1 user,  load average: 0.10, 0.20, 0.30

USER    TTY      FROM              [email protected]   IDLE  JCPU   PCPU WHAT

root    pts/0    192.168.134.1    09:02   0.00s  0.00s  0.00s w

主要分析红色字体,表示CPU负载 0.10表示一分钟cpu负载,该值一般不能大于cpu的核数,大于cpu核数,如一核表示cpu负载有点高,0.20表示五分钟cpu负载,0.30表示十五分钟cpu负载

查看CPU核数:红色字体,0表示单核,1表示双核

[[email protected] ~]# cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family     : 6

model           : 69

model name      : Intel(R) Core(TM) i5-4200U CPU @1.60GHz

命令uptime

和w命令差不多

[[email protected] ~]# uptime

09:05:57 up 1 min,  1 user, load average: 0.21, 0.09, 0.03

命令vmstat

当使用w命令,查看到cpu一分钟负载有点高时,就要分析在哪个地方使用高了。就使用这个命令分析

[[email protected] ~]# vmstat

procs -----------memory---------- ---swap-------io---- --system-- -----cpu-----

r b   swpd   free  buff  cache   si  so    bi    bo  in   cs us sy id wa st

0 0   3516  69292 196588 513076    0   0     0    25   1    2  0  099  0 0

[[email protected] ~]# vmstat 1 5                                             #每秒钟显示一次,一共显示五次

procs -----------memory---------- ---swap-------io---- --system-- -----cpu-----

r b   swpd   free  buff  cache   si  so    bi    bo  in   cs us sy id wa st

0 0   3516  68920 196588 513480    0   0     0    25   1    2  0  099  0 0

0 0   3516  68904 196588 513480    0   0     0     0 166  275  1  198  0 0

0 0   3516  68780 196588 513480    0   0     0   124 179  317  0  099  1 0

0 0   3516  68780 196588 513480    0   0     0     0 170  301  0  0100  0 0

0 0   3516  68780 196588 513484    0   0     0     0 184  293  2  197  0 0

[[email protected] ~]# vmstat 2                                       #一直监控,两秒显示一次

procs -----------memory---------- ---swap-------io---- --system-- -----cpu-----

r b   swpd   free  buff  cache   si  so    bi    bo  in   cs us sy id wa st

0 0   3516  67928 196592 514288    0   0     0    25   1    2  0  099  0 0

0 0   3516  67920 196592 514296    0   0     0     0 134  214  0  199  0 0

r(running、运行):表示运行和等待cpu时间片的进程数。如果长期大于服务器cpu个数,则说明cpu不够用了;

b(block、阻塞):表示等待资源的进程数,

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

free:空闲的物理内存的大小

buff:Linux、unix系统是用来存储目录里面有什么内容,权限等得缓存

cache:cache直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cache会很快被使用

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

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

bi :从块设备读取数据的量(读磁盘);

bo:从块设备写入数据的量(写磁盘);

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

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

si:从交换分区到内存,so:从内存到交换分区;bi:从硬盘到内存,bo:从内存到硬盘;

这样理解是否正确:si和so和swpd的值一直增加,说明内存不足,因为要把内存某些数据交换出去。而bi bo值大,说明读写硬盘频繁,再大说明硬盘IO瓶颈。考虑陈列卡或固态硬盘、减少磁>盘IO操作

cs:每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和

线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表

示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us :cpu占用的百分比,这个大于50,就要找原因了,看哪个进程占用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

当使用w或者vmstat命令的时候,查看系统负载情况,top可以分析哪个进程占用cpu高

每三秒显示一次,按q退出

用法:top -bn1        #静态显示进程的负载,可以写入脚本里

[[email protected] ~]# top

top - 19:01:55 up 170 days,  8:15, 1 user,  load average: 0.00, 0.01,0.00

Tasks: 98 total,   2 running,  96 sleeping,  0 stopped,   0 zombie

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

Mem:  1030600k total,   980784kused,    49816k free,   196864k buffers

Swap: 2097148k total,     3516kused,  2093632k free,   530960k cached

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

15624 root      20  0  7056 5904  432 S 0.3  0.6 135:18.16 sap1002

15627 root      20  0 31464  12m 664 R  0.3  1.3 282:13.96 sap1005

1root      20   0 2900  936  796 S 0.0  0.1   0:10.05 init

2root      20   0    0    0    0 S 0.0  0.0   0:00.00 kthreadd

3root      RT   0    0    0    0 S 0.0  0.0   0:00.00 migration/0

4root      20   0    0    0    0 S 0.0  0.0   0:56.08 ksoftirqd/0

前面几行可以看到cpu负载,内存的使用used,空闲内存free,和buffers,cached

下面的有PR(0--39),NI(-20--19)

VIRT:虚拟内存

RES:真实内存

SHR:共享内存

%CPU :占用cpu的百分比

%MEM:占领内存百分比

COMMAND:具体的进程

命令sar

查看网卡流量

首先要先安装

yum install -y sysstat

刚才是可能会显示“无法打开 /var/log/sa/sa08: 没有那个文件或目录”,过10分钟才能正常显示

[[email protected] ~]# sar -n DEV

Linux 2.6.32-504.30.3.el6.i686 (feiji)  2016年11月08日  _i686_ (1 CPU)

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

20时30分01秒        lo     0.13      0.13      0.01     0.01      0.00      0.00     0.00

20时30分01秒      eth0     1.35      1.40      0.15     0.22      0.00      0.00     0.00

平均时间:        lo     0.13      0.13      0.01     0.01      0.00      0.00     0.00

平均时间:      eth0      1.35     1.40      0.15      0.22     0.00      0.00      0.00

其中主要看eth0(外网网口)的rxkB/s(进网口)、txkB/s(出网口)

rxkB/s(每秒收取的数据量)

txkB/s(每秒发送的数据量)

0.15kb/s / 1000 = 0.00015mb/s

带宽等于0.00015mb/s * 8bi t= 0.0013m

须知道1byt = 8bit

常说的网线带宽单位就是比特10m的带宽都是已经乘于8

10 / 8 = 1.25     就是它的下载速度

比特是网卡上的进量单位

计算机单位有字节(byt),KB,MB,GB

sar –q                #能够查看历史负载

sar –b                #可以查看当前的磁盘状态

sar –p                #可以查看cpu的使用情况

命令free

[[email protected] ~]# free -m

total       used       free    shared    buffers     cached

Mem:       1006       961        44          0    187        541

-/+ buffers/cache:          232      774

Swap:         2047       4      2043

Men 表示内存,total表示总数,used表示使用量,free表示剩余内存

真正的剩余内存看-/+ buffers/cache:    free=744= 44+187+541

第二部分(-/+ buffers/cache):

(-buffers/cache) used内存数:232M (指的第一部分Mem行中的used – buffers – cached)

(+buffers/cache) free内存数: 774M (指的第一部分Mem行中的free +buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数.

时间: 2024-12-22 06:51:28

负载命令的相关文章

查看系统负载命令有哪些

查看负载的命令有哪些? 一.uptime命令 1.uptime详解 uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系统在过去的1分钟.5分钟和15分钟内的平均负载. 2.使用方法 uptime 显示内容详解 10:19:04 //系统当前时间 up 257 days, 18:56 //主机已运行时间,时间越大,说明你的机器越

查看系统负载命令

查看负载的命令有哪些? 一.uptime命令 1.uptime详解 uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系统在过去的1分钟.5分钟和15分钟内的平均负载. 2.使用方法 uptime 显示内容详解 10:19:04 //系统当前时间 up 257 days, 18:56 //主机已运行时间,时间越大,说明你的机器越

系统负载命令

[[email protected] ~]# w 09:10:14 up 21 min, 1 user, load average: 0.00, 0.01, 0.03 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/0 192.168.252.222 08:50 0.00s 0.12s 0.05s w 时间 系统运行时间 登录用户数 平均负载 当前登录有哪些用户 从哪里登录 load average 第一个数值表示1分钟内

linux中uptime命令查看linux系统负载

阅读目录 uptime cat /proc/loadavg 何为系统负载呢? 进阶参考 uptime uptime 另外还有一个参数 -V(大写),是用来查询版本的 procps是一个实用程序包,主要包括ps top kill等程序主要用来显示与控制一些系统信息,进程状态之类的内容. 以下显示输入uptime的信息: 04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20 当前时间 04:03:58 系统已运行的时间

linux命令(41):watch命令

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果.你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了! 1.命令格式: watch[参数][命令] 2.命令功能: 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令 3.命令参

每天一个linux命令(48):watch命令

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果.你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了! 1.命令格式:? watch[参数][命令] 2.命令功能: 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令 3.命令

【转】每天一个linux命令(48):watch命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/31/2840241.html watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果.你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了! 1.命令格式:

linux命令大全之watch命令详解(监测命令运行结果)

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果.你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了! 1.命令格式:watch[参数][命令] 2.命令功能:可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令 3.命令参数:

间隔查询显示命令watch

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果.你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了! 1.命令格式: watch[参数][命令] 2.命令功能: 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令 3.命令参