Linux平常运维管理技巧-iostat、iotop、free、ps、netstat、tcpdump、tshark命令

监控io性能

iostat命令

iostat命令查看系统输入输出设备和CPU的使用状况,在安装 sysstat 这个包的时候,就会安装iostat命令,和 sar 同一个包。html

iostat -x命令,其中有个很是重要的指标%util,表示io等待占的百分比;若是%util数值达到50%或60%,说明磁盘的io很是差;若是%util数值很大,则rkB/s和wkB/s数值也很大;若是rkB/s和wkB/s数值不大,%util数值很大,这说明硬盘有问题。linux

iotop命令

iotop命令是一个用来监视磁盘I/O使用情况的top类工具,能够动态查看哪个进程在频繁的读写。ios

使用iotop命令前,先安装iotop包,yum install -y iotop,运行iotop命令,关注IO>这一列。web

free命令

free命令是查看内存使用状况的,直接运行free缓存

第一行是说明行,第二行是内存使用状况,第三行是交换分区的使用状况服务器

默认单位KB,使用free -m,可切换单位MB,使用-h,切换单位GB网络

buff(缓冲)和cache(缓存)区别:数据流向不一样多线程

磁盘——>内存(cache)——>cputcp

cpu——>内存(buffer)——>磁盘工具

公式:total=used+free+buff/cache

avaliable包含free和buffer/cache剩余部分

ps命令

ps命令查看系统进程

ps -aux把系统中全部的进程给列出来

STAT:进程的状态,须要关注

  • D:不能中断的进程
  • R:run状态的进程
  • S:sleep状态的进程
  • s:主进程
  • T:暂停的进程
  • Z:僵尸进程
  • <:高优先级进程
  • N:低优先级进程
  • L:内存中被锁定了内存分页
  • l:多线程进程
  • +:前台进程

进程与线程

进程由线程组成的,一个进程中有多个线程;进程与进程以前相互的不共享,线程之间是使用了同一个进程的内存区域。

ps -elf,与ps -aux显示的信息基本同样

查看网络状态

netstat命令查看网络状态,查看的就是tcp/ip通讯的一个状态

netstat -lnp 查看监听端口

netstat -ltnp 只查看tcp;netstat -ltunp 只查看tcp和udp

netstat -an 查看全部的链接状态

netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t" ,sta[key]}',能够查看全部状态的数字,须要记住

ESTABLISHED数值表示当前有多少个客户端在和服务端保持通讯;若是ESTABLISHED数值很大,表示系统很忙,一般数值在1000之内,服务器均可以接受。

ss -an命令与netstat相似,缺点是不会显示进程名字

Linux下抓包

tcpdump命令

是用来抓取数据包的,运行前先安装tcpdump包,yum install -y tcpdump

而后运行tcpdump -nn命令,须要指定网卡的名字tcpdump -nn -i ens33

第一个n,表示你的ip用数字的形式显示出来,若是不加则会显示出主机名.

tcpdump -nn ens33 port 22 (not port 22)指定端口为22的(非22的端口)

tcpdump -nn not port 22 and host 192.168.0.100 除去22端口,只要ip为192.168.0.100的包

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap指定抓包个数以及存放位置;用file命令查看1.cap文件大概信息,不能被cat查看,不然会乱码

能够用tcpdump -r查看1.cap信息,r就是read

tshark命令

该命令也是用来抓包的,使用前先安装yum install -y wireshark

wireshark工具与tcpdump工具相似

命令tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri",能够查看指定网卡80端口的一个web访问状况,相似于web的访问日志,须要记住。

扩展

tcp三次握手四次挥手

tshark几个用法

相关文章
相关标签/搜索