七周二次课(1月23日)
10.6 监控io性能

blob.png

iostat -x

blob.png

blob.png

iostat -x 1

blob.png

blob.png

%util 磁盘等待io  数字大,磁盘读写等待过长

iotop

blob.png

blob.png

动态显示 根据磁盘io

blob.png

db数据库示例

blob.png


10.7 free命令

free   查看内存  centos6和7显示结果不同

blob.png

buff   缓冲      cache 缓存 

数据流向图解

blob.png

used+free+buff/cache=total

available=free+buff/cache


10.8 ps命令

blob.png

ps aux  静态列出系统所有进程,top是动态

blob.png

ps aux |grep nginx  查看是不是有这个进程在运行

blob.png

ps -elf 和aux差不多

blob.png

kill pid 命令

blob.png

ls -l proc/pid/ 查看进程的目录

blob.png

STAT  进程状态 

    D    不可中断     Uninterruptible sleep (usually IO)
    R    正在运行,或在队列中的进程 RUN
    S    处于休眠状态 SLEEP
    T    停止或被追踪
    Z    僵尸进程
    X    死掉的进程
    <    高优先级
    N    低优先级
    L    有些页被锁进内存
    s    包含子进程,本身是父进程
    +    前台进程
    l     多线程,克隆线程  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

进程与线程

1 进程里包含了线程,线程是进程的子单元

2 同一个进程下的线程全部共享相同的内存,而进程之间内存相互隔离。


10.9 查看网络状态

blob.png

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。


netstat -lnp 查看监听的端口

blob.png


netstat -an 查看tcp/ip 协议状态

blob.png

查看tcp 连接状态

blob.png

查看所有连接状态

blob.png



blob.png


ss -an   tcp/ip状态

blob.png



10.10 linux下抓包

blob.png

blob.png

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

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

指定端口和ip   port host    非某个端口not port

blob.png

指定100个数据包并存到一个文件去   -c  -w

blob.png

blob.png

blob.png

blob.png

查看这个文件用tcpdump -r查看  上图是实际传输的数据包,包含ip和实际内容等

blob.png



tshark

blob.png

blob.png




扩展

tcp三次握手四次挥手 spacer.gifspacer.gifhttp://www.doc88.com/p-9913773324388.html 
tshark几个用法:spacer.gifhttp://www.aminglinux.com/bbs/thread-995-1-1.html