10.6 监控io性能
iostat查看磁盘情况(需要安装sysstat包)
可以直接运行该命令,或者后面加一个1,就是动态显示。
(使用sar -b可以达到同样的效果,所以我们介绍一下下面的用法)
我们着重看的是红框一列,该列表示磁盘有多少时间占用cpu时间比,等待io时间占比,等待磁盘读写时间占总时间的比例。
如果这一列的数字很大,50或者60,并且wkb/s列也很大那就说明磁盘io比较大比较忙,但是如果wkb/s列并不大,那么就说明磁盘出故障了。
硬盘慢就会影响系统的性能。
查看具体进程读写磁盘情况,和top命令很像(需要安装iotop)
我们主要看io一列
10.7 free命令
free查看内存使用情况
第一行说明、第二行是内存使用情况、第三行是交换分区。
第一列是总大小(默认单位是kb,可以使用-m指定单位为兆,或者使用-h使用适当的单位)、第二列是已使用的,第三列是剩余的、第四列是共享的、第五列、第六列。
系统会把内存预留一点给buff/cache(buff是缓冲、cache是缓存)
free查看内存使用情况主要看的就是avaliable。
10.8 ps命令
ps查看进程
ps aux (静态的列出所有进程)
第一列向后分别是 运行用户、pid、cpu占用、内存占用、虚拟内存、物理内存、tty、stat(进程的状态)、什么时候启动的、运行了多久了、命令。
我们要关注STAT(进程的状态)。
STAT(进程的状态)有:
D不能中断。
R(run)正在跑的进程(在一个时间段内使用cpu)。
S(sleep)进程运算完可能会暂停一下,过会会激活
T暂停的进程(ctrl+z暂停的进程)
+前台进程
Z僵尸进程
<高优先级的进程(cpu优先处理)
N低优先级
L内存中被锁了内存分页的
s主进程
L多线程进程
ps aux用法:查看某个进程有没有在运行
ps -elf和ps aux一样。
杀死进程使用kill加pid
10.9 查看网络状态
netstat查看网络状态(tcplp通信状态)
查看监听端口(用户和服务器通信需要端口)
STREAM内部通信
只查看tcp以及tcp6的端口
只查看tcp以及tcp6以及udp端口
查看tcpip状态
状态:客户端和服务端两个机器相互通信之后它们的链接还没有断开,处于一种等待的状态,等待下次这两台机器再次连接传输数据。
查看各个状态的个数命令:
我们主要关注如上白底一行,这个数字如果很大说明你的系统很忙,(并发连接数,在这个时间内有多少个客户端在和服务端通信)一般一千以内。
和netstat相似,不过不显示进程名
查看LISTEN一列
10.10 linux下抓包
tcpdump抓包工具(如果没有需要安装tcpdump包)
指定网卡名字
n表示ip用数字的形式表示出来,如果不加会显示主机名。
不加:
第一列往后分别是时间、ip、源ip、端口、到哪个ip去、端口、包的信息。
我们主要关注白底部分。看数据的流向。
有时候也要看length(长度),如下图
指定端口
排除写法,排除22端口
排除22端口并指定ip
指定抓的包个数
结果存到指定文件里去,(这个文件cat不了,使用file可查看大概信息)
可以查看到数据流
tshark抓包工具类似于tcpdump(需要安装wireshark包)
查看指定网卡80端口的wap访问的情况:
可以看到有什么ip访问我的网站,访问网站的什么链接。