2018-1-23 7周2次课 iostat,free,ps,netstat,tcpdump

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-1-23 7周2次课 iostat,free,ps,netstat,tcpdump相关的知识,希望对你有一定的参考价值。

10.6 监控io性能

技术分享图片

技术分享图片

iostat命令和sar属于同一个包,安装sysstat就可以


·查看磁盘使用情况iostat:(使用方法与vmstat一致)

技术分享图片技术分享图片


·每隔一秒查看一次磁盘使用情况

技术分享图片技术分享图片


·每隔一秒查看磁盘情况一次,共查看两次

技术分享图片技术分享图片

·iostat -x

技术分享图片技术分享图片

(%util表示一秒内IO操作所占的比例)

如果数字很大,那么磁盘读写也会很大;但是如果读写不大,而%util很大,那么磁盘可能存在故障


·iotop命令:

安装iotop命令:[[email protected] ~]#yum install -y iotop

iotop和top命令类似,都是动态显示

技术分享图片技术分享图片





10.7 free命令


·查看内存使用情况

[[email protected] ~]# free
            total             used            free      shared    buff/cache   available
Mem:          999696      120152       621148         6820        258396      696728
Swap:       2097148             0     2097148


·指定单位为M

[[email protected] ~]# free -m
total        used          free      shared  buff/cache   available
Mem:            976          117          605               6             253           680
Swap:          2047             0        2047


·可视化,方便查看

[[email protected] ~]# free -h
             total        used           free      shared  buff/cache   available
Mem:         976M        117M        605M         6.7M         253M        680M
Swap:          2.0G            0B         2.0G


cache缓存:磁盘——>内存(cache)——>CPU

buffer缓冲:CPU——>内存(buffer)——>磁盘


公式:

total = free + used + buff/cache

available = free + buff/cache的剩余部分

关注点:available





10.8 ps命令


·查看系统进程

[[email protected] ~]# ps aux


技术分享图片


·查看某个进程是否在运行:ps aux |grep 关键字

[[email protected] ~]# ps aux |grep mysql
root       1812  0.0  0.0 112676   980 pts/0    S+   16:48   0:00 grep --color=auto mysql


·查看系统所有进程,除了ps aux还可以使用ps -elf

[[email protected] ~]# ps -elf

技术分享图片技术分享图片


PID的用处:1,kill进程用 kill + 进程号

2,查看进程所在目录  ll /proc/数字


STAT部分说明:

D                  不能中断的进程

R                  run状态的进程(某个时间段内在使用)

S                  sleep状态进程 (vmstat运行时间很短,运行一下就sleep,并不会消耗CPU资源)

T                  暂停的进程

+                  前台进程

Z                  僵尸进程(很少会有,但也会有)

<                  高优先级进程

N                  低优先级进程(不急)

L                  内存中被锁了内存分页(不常见)

s                  主进程

l                  多线程进程(一个进程中有多个线程)






10.9 查看网络状态

技术分享图片

技术分享图片


·查看网络状态:netstat

技术分享图片技术分享图片

(不详细列举)


·查看监听端口

netstat -lnp              (l=listen)

技术分享图片技术分享图片


·查看所有连接状态:netstat -an

技术分享图片技术分享图片

(不详细列举)


·只看tcp的,不包含socket:netstat -lntp

[[email protected] ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      903/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1006/master
tcp6       0      0 :::22                   :::*                    LISTEN      903/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1006/master


·只看tcp和udp的:netstat -luntp

[[email protected] netstat -luntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      903/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1006/master
tcp6       0      0 :::22                   :::*                    LISTEN      903/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1006/master
udp        0      0 127.0.0.1:323           0.0.0.0:*                           547/chronyd
udp6       0      0 ::1:323                 :::*                                547/chronyd


·ss -an 和 netstat异曲同工(缺点是不显示进程的名字)

[[email protected] ~]# ss -an |grep -i listen
u_str  LISTEN     0      100    private/tlsmgr 19537                 * 0
u_str  LISTEN     0      100    private/rewrite 19540                 * 0
u_str  LISTEN     0      100    private/bounce 19543                 * 0
u_str  LISTEN     0      100    private/defer 19546                 * 0
u_str  LISTEN     0      100    private/trace 19549                 * 0
u_str  LISTEN     0      100    private/verify 19552                 * 0
u_str  LISTEN     0      128    /run/systemd/private 12570                 * 0
u_str  LISTEN     0      32     /var/run/vmware/guestServicePipe 16424                 * 0
u_str  LISTEN     0      100    public/qmgr 19533                 * 0
u_str  LISTEN     0      100    public/flush 19555                 * 0
u_str  LISTEN     0      100    public/showq 19570                 * 0
u_str  LISTEN     0      100    private/proxymap 19558                 * 0
u_str  LISTEN     0      100    private/proxywrite 19561                 * 0
u_str  LISTEN     0      100    private/smtp 19564                 * 0
u_str  LISTEN     0      100    private/relay 19567                 * 0
u_str  LISTEN     0      100    private/error 19573                 * 0
u_str  LISTEN     0      100    private/retry 19576                 * 0
u_str  LISTEN     0      100    private/discard 19579                 * 0
u_str  LISTEN     0      100    private/local 19582                 * 0
u_str  LISTEN     0      100    private/virtual 19585                 * 0
u_str  LISTEN     0      100    private/lmtp 19588                 * 0
u_str  LISTEN     0      100    private/anvil 19591                 * 0
u_str  LISTEN     0      100    private/scache 19594                 * 0
u_seq  LISTEN     0      128    /run/udev/control 12662                 * 0
u_str  LISTEN     0      100    public/pickup 19526                 * 0
u_str  LISTEN     0      100    public/cleanup 19530                 * 0
u_str  LISTEN     0      128    /run/lvm/lvmetad.socket 12664                 * 0
u_str  LISTEN     0      128    /run/lvm/lvmpolld.socket 12762                 * 0
u_str  LISTEN     0      128    /var/run/dbus/system_bus_socket 15327                 * 0
u_str  LISTEN     0      128    /run/systemd/journal/stdout 8432                  * 0
tcp    LISTEN     0      128       *:22                    *:*
tcp    LISTEN     0      100    127.0.0.1:25                    *:*
tcp    LISTEN     0      128      :::22                   :::*
tcp    LISTEN     0      100     ::1:25                   :::*



netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

[[email protected] ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
LISTEN  4
ESTABLISHED  1

(关注ESTABLISHED,数字越大,越忙)





10.10 Linux下抓包


抓包工具:tcpdump

安装tcpdump:yum install -y tcpdump


·使用方法:tcpdump -nn

[[email protected] ~]# tcpdump -nn
tcpdump: packet printing is not supported for link type NFLOG: use -w

(因为网卡名比较特殊,默认时eth0,所以无法使用,需要指定)


·指定网卡抓包:tcpdump -nn -i 网卡名

技术分享图片技术分享图片

(内容过多,中间省略)

技术分享图片技术分享图片

-nn的第一个n表示IP用数字显示出来,如果不加n,则会显示主机名

技术分享图片技术分享图片

-nn用数字显示,比较直观

(关注点:数据流向,length)


·指定端口:tcpdump -nn port 端口号

[[email protected] ~]# tcpdump -nn -i ens33 port 22


·指定不要的端口:tcpdump -nn not port 端口号

[[email protected] ~]# tcpdump -nn -i ens33 not port 22


·同时指定不要的端口和指定IP的包:tcpdump -nn not port 端口号 and host 指定IP地址

[[email protected] ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.65.1


·指定数据包个数:tcpdump -nn -c 个数

[[email protected] ~]# tcpdump -nn -i ens33 -c 20                ##抓20个包

技术分享图片技术分享图片


·将指定个数抓的包存到指定文件中:tcpdump -nn -c 个数 -w 绝对路径

[[email protected] ~]# tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
100 packets captured
100 packets received by filter
0 packets dropped by kernel

(1.cap是无法cat的)


·查看.cap文件:tcpdump -r 目标文件

[[email protected] ~]# tcpdump -r /tmp/1.cap

技术分享图片技术分享图片


·tshark命令

安装:yum install -y wireshark

查看指定网卡80端口web访问情况:

[[email protected] ~]# 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"

(类似于访问日志,可以查看什么IP访问什么链接)


以上是关于2018-1-23 7周2次课 iostat,free,ps,netstat,tcpdump的主要内容,如果未能解决你的问题,请参考以下文章

2018-1-23 7周2次课

2018.1.9 5周2次课

2018-3-7 11周2次课

2018.3.7 11周2次课

2018-1-9 5周2次课

2018.2.28 10周1次课