一、 使用w查看系统负载
二、 vmstat命令
三、 top命令
四、 sar命令
五、 nload命令
六、 监控io性能
七、 free命令
八、 ps命令
九、 netstat查看网络状态
十、 linux下抓包
十一、Linux网络相关
十二、扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread99511.html
一、 使用w查看系统负载
1.1 w查看当前系统的负载
该命令显示的信息第一行从左面开始显示的信息依次为:时间,系统运行时间(即登录时间),登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。最应该关注的应该是第一行中的 ‘load average:’ 后面的三个数值。
load average代表:
1,5,15分钟内系统的负载值是多少(和cpu有关)。
第一个数值表示1分钟内系统的平均负载值(1分钟内最能体现系统的负载情况);第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个负载值的意义是,单位时间内使用cpu的活动进程有多少个(平均值,可以是小数)。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量(逻辑核数)就没有关系,如果服务器cpu数量为8,那么这个值若小于8,就说明当前服务器没有压力(最优负载值),否则就要关注一下了。
1.2 w/uptime 查看系统负载
uptime查看到内容与w的第一段内容相同
1.3 cat /proc/cpuinfo 查看cpu核数(逻辑cpu)
‘/proc/cpuinfo’ 这个文件记录了cpu的详细信息。目前市面上的服务器通常都是2颗4核cpu,在linux看来,它就是8个cpu。(processor值为0代表一颗cpu。),所以查看当前系统有几个cpu,我们可以使用这个命令: cat /proc/cpuinfo|grep 'processor'
。而如何看几颗物理cpu呢,需要查看关键字 “physical id”, 由于虚拟机只有一个cpu所以并未显示关于 “physical id” 的信息。
1.4 用w查看系统情况,看到有可疑的tty或者pts端连接上,怎么把它直接踢掉
[root@Linux01 ~]# pkill kill -t pst/0
查看那个终端做了哪些操作:
只能通过看命令历史,但如果那个终端没有正常退出,比如直接强制踢掉就没办法查看。
但可以做一个简易的审计系统:
http://www.68idc.cn/help/server/linux/2014042190951.html
二、 vmstat命令
2.1 当系统负载偏高时,使用vmstat命令查看
w 查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了。通过 vmstat 就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu. 请重点关注一下r b wa si so bi bo us几列。
1)procs 显示进程相关信息
- r :run,表示有多少进程处于run状态,等待的也是run。如果长期大于服务器cpu的个数,则说明cpu不够用了;
- b :block,表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;
2)memory 内存相关信息
- swpd :表示切换到交换分区中的内存数量 ;(当该数据不断变化时说明内存不足,内存不足时,会把部分硬盘空间拿出来做内存使用)
- free :当前空闲的内存数量;
- buff :缓冲大小,(即将写入磁盘的);
- cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
- si :=storage in,由交换区写入到内存的数据量;
- so :=storage out,由内存写入到交换区的数据量;
4)io 磁盘使用情况
- bi:=block in,表示从块设备读取数据写入内存的数据量(即:读磁盘),单位为KB;