版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gpcsy/article/details/48244671
1. 命令 w w返回的信息,比较重要的就是负载值。 load average 后面的三个数分别是对应的1分钟,5分钟,15分钟的平均负载。 load average的意义是,在这1分钟内有多少进程正在使用cpu以及多少进程排队将要使用cpu 例如 10个窗口可以打饭,但来了100个人。打饭的师傅是cpu,来吃饭的同学就是任务。 返回的第一行数据信息意思如下: 系统时间 up启动了多久时间 登录了多长时间 几个用户 平均负载 详细的用户信息。 用户 登录方式 从哪里登录的 登录了多长时间 空闲时间 该终端下进程占用cpu时间 当前命令占用了多长cpu时间
ps:有时what下显示的-bash,代表其在运行命令。 用uptime命令,只显示w返回的第一行内容 1分钟内的负载值小于内核数的时候最好。 如何看cpu有几个内核: cat /proc/cpuinfo 查看processor号,不管是逻辑的还是物理的cpu,有几个就是几个。 最直接的命令:lscpu,查看CPU(s)这个数值,不用去查询processor号。 如果1分钟平均负载为12.5,而只有8个内核的话,那就是只能执行8个任务,4.5个任务需要排队等待使用cpu。 2. 进程不共享同一块内存各用各的,线程共享一块内存,另外
进程是同时的进行,线程是并发的执行
3. vmstat 1(主要看的参数是:r 、b 、si、so、bi、bo、us、sy、wa) 假如用w查看后,发现有负载,那就可以使用vmstat 1来查看,这些负载都是哪来的。(1代表1秒中刷新一次)
procs memory swap io system cpu
任务 内存 交换空间 磁盘 系统相关 cpu
通过上述参数,可以查看到底是哪块造成了高负载。
procs进程/任务
r :表示运行和等待cpu时间片的进程数,和1分钟平均负载值类似,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :表示任务处于阻塞状态。可能磁盘吞吐慢,网络卡,内存低等造成。比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了
memory内存
swpd :交换了多少个块,单位kb,这个值越大说明交换的数据越多。如果这个值很大或者这个数值一会大一会小,而且变化很快,则说明内存不够用了。一般是内存不够用了,才去将数据放到swpd里。
free :剩余内存空间。可以用
vmstat -S M 1来清晰查看
buffer:缓冲剩余空间。cpu快,磁盘读写慢,buffer用来平缓2者之间的速度差。数据将要写到磁盘里去,暂时放到内存里的空间,叫buffer。
cache:缓存剩余空间。将数据从磁盘里取出来,暂时存在内存里的空间,叫cache。
swap交换空间
si (swap in):由交换区进入内存的数量;
so (swap out):由内存进入交换区的数量;
一般只要内存够用,这2个数值就应该为0。经常为0才正常。相对的对象为内存。
io磁盘
相对的对象也为内存。
bi(in到内存里,那就是从磁盘出来,bi就是读数据) :从块设备读取数据的量(读磁盘);
bo(out从内存里出来,进入磁盘,bo就是写磁盘): 从块设备写入数据的量(写磁盘);
一般bi大于bo,读大于写,读比写频繁,读比写快一些,bibo在1000以内就ok
bi bo不能太大,否则代表磁盘读写很频繁。
system系统
in:表示中断的次数,表示1秒中之内中断了多少次。
cs:上下文切换
cpu
us:用户态占用cpu的百分比,占用了多少cpu
sy: 内核占用cpu多少
wa :表示I/O等待所占用cpu时间百分比.
要注意哪些进程,此块需要补
4。 top
第一列和vmstat及w都一样
tasks 有多少个任务 多少running多少sleeping 多少停止的 多少僵尸的(没有人要的进程,死进程)
cpu 用户使用的cpu 系统使用的cpu
后两行都是内存相关。
top -c 会显示整个命令的全部名称,要不只显示进程。
pid进程号码 user使用者 pr ni 用来衡量进行优先级的。(pr取值范围0~39,值越小,优先级越高。ni取值范围是从-19~20) virt 虚拟内存 res真正内存 shr共享内存 s进行状态(s:sleep r:run) %cpucpu使用率 %mem内存使用率 time使用cpu多久了。
top关注 PID USER RES CPU MEM
(proc里面就是进程的号码。)
top -bn1 静态的将所有进程信息一次性显示出来
top默认是按照cpu使用率排序,shift m可以切换到按照内存使用率排序。
5. sar 可以看所有信息状态。比喻为Linux的瑞士军刀。
安装方法:yum install -y sysstat
sar -n DEV 1 10 单位是字节
1 1秒钟显示
10 显示10次
sar -n DEV 1
rxbyt/s接收的 txbyt/s用户上传的 receive transport
1Byte=8bit
1k=1000byte byte字节的意思
1byte=8bit 1字节=8比特
10Mb带宽=1.25MB/s 10兆带宽(这个时候的单位是bit),实际下载速度是能达到1.2M(这个时候的单位是字节)
bit就是我们平时说的带宽多大,字节就是我们说的实际传输数据的速度大小。
在我们实际上网应用中,下载软件时常常看到诸如下载速度显示为128KBps(KB/s),103KB/s等等宽带速率大小字样,因为ISP提供的线路带宽使用的单位是比特,而一般下载软件显示的是字节(1字节=8比特),所以要通过换算,才能得实际值。然而我们可以按照换算公式换算一下:
128KB/s=128×8(Kb/s)=1024Kb/s=1Mb/s即128KB/s=1Mb/s。
数据都是存在了/var/log/sar日志里。最多可以记录10天数据。
可以查看指定某一天的数据,例如:
sar -n DEV -f /var/log/sa/sa20
sar可以查cpu和硬盘数据。比如
查看系统的历史负载 : sar -q
查看某一天的历史负载:sar -q -f /var/log/sa/sa19
查看磁盘 sar -b 1 10
主要看bread和bwrtn这两个值。
-i 一般是指定某一个设备
6. free 查看内存的。
|
free -m 看系统还剩多少内存,要看途中标白的数值。 362是刨去buffers,cached后,剩余的。 3508包括了buffer,cashed里未使用的 362+192+2952=3508 |
4473是真正使用的内存。 7.ps ps aux 主要看pid cpu内存使用 状态 S=sleep。 R=Running。 s=farther。 +前台进程。 < 高优先级的。 N低优先级的。 l多线程的进程。L被锁的进程 Z僵尸进程 D不能被中断的进程 T被终止被暂停的进程。 主要用在,想查看进程是否启动了。 ps aux|grep 进程名字 pstree树形的去查看进程。 |
8.netstat 查看网络状态。 netstat -lnp 查看整个系统都有哪些端口在被监听着。 netstat -an 查看系统的网络连接状况 左边是源,右边是目标,最后是状态。 netstat -an|grep -ci establish 查看并发数 netstat -an|wc -l 不能用这个命令来查并发数,因为大多数都是time_wait状态,建立完连接后,在等待下次传输。 netstat -an|grep `122.122.69.86:80`|grep -ic `estab` 查看80端口的并发数 什么是并发:我的数据正在传输、正在通讯、正在和你打交道,请求你给我发过来,建立连接 establish这就是并发。也即同一时刻服务器处理的请求。 |