io、free、ps、netstat、tcpdump、tshark

10.6 监控io性能

  1. iostat -x 磁盘使用
  2. iostat
  3. iostat 1
  4. 得到的信息为硬盘信息,还有读写速度
  5. iostat -x
  6. 得到的信息中有一个非常重要的指标%util,这一列表示io等待io时间比占用多少cpu,如果这个数字很大,例如50% 60%,说明磁盘很忙
  7. iotop,发现磁盘io很高,希望看到哪一个进程再读写,可以直接输入iotop

10.7 free命令

  1. free 查看内存和交换分区信息
  2. free -m以M为单位显示
  3. free -h以合适的单位显示
  4. total=used+free+buff/cache
  5. linux操作系统会分配一部分出来给buff和cache,buff为缓冲,cache为缓存
  6. 数据从磁盘读出来交给cpu运算,数据流方向为:000(磁盘)--> 内存(cache) --> cpu,这个内存较为cache
  7. cpu把数据计算完毕存储到磁盘中数据流方向为:cpu(000)--> 内存(buffer)--> 磁盘
  8. acailable为free+预分配后的buff/cache,buffer/cache剩余部分

10.8 ps命令

  1. ps汇报当前进程的快照
  2. ps aux 把当前的进程使用状况列出来,为静态的,top为动态的
  3. ps aux | grep mysql 检查某个进程是否在运行
  4. ps -elf 同ps aux相似
  5. PID 杀死一个进程的时候用这个PID,kill PID命令
  6. 当系统被黑客攻击,遇到一个不知道的进程,需要搞明白进程在什么地方启动起来的,将它kill了
  7. ls -l /proc/PID
  8. STAT 进程状态
    1. D不能中断的进程
    2. R run状态的进程,在一个时间段内在使用的进程
    3. S sleep状态的进程,运算完会暂停一段 +加号意思为前台进程
    4. T 暂停的进程ctrl+z的进程
    5. Z僵尸进程
    6. <高优先级的进程
    7. N低优先级进程
    8. L内存中被锁了内存分页的进程
    9. s(小写s)主进程
    10. | 多线程进程,一个进程有多个线程,一个进程有一块内存,这个进程下的多个线程都可以共享这一块内存,其他进程是不能使用这一块内存的。
    11. +前台进程

10.9 查看网络状态

  1. netstat 查看网络状态
  2. 服务器上有很多服务,服务是与客户端进行通信,有监听端口和通信端口,netstat查看的是tcp/ip通信端口,正常情况下是没有端口监听的,如果想提供web服务,必须监听端口
  3. netstat -lnp 查看监听端口
    1. Local Address 中的IP:端口,Ip后边就是端口,或者最后一个冒号后边的数字
    2. sockets文件,同一台服务器不同进程之间通过socket进行通信
    3. netstat -an 查看所有的连接状态
    4. netstat -ltnp 只查看tcp状态
    5. netstat -ltunp 查看tcp udp状态
    6. 涉及到tcp三次握手四次挥手
  4. # netstat -an | awk '/^tcp/ {++sta[$NE]} END {for(key in sta) print key,"\t",sta[key]}'统计所有状态的数量
  5. centos7.aminglinux.com
  6. ss -an 也能查看,但是不现实进程名字

10.10 linux下抓包

  1. yum install -y tcpdump
  2. tcpdump -nn -i ess1(网卡名字)
    1. -nn 加n为将ip和端口显示为数字,不加显示的为主机名字
    2. 关注的为源IP和端口与目的IP和端口
  3. tcpdump -nn -i eth0 port 22
  4. tcpdump -nn -i eth0 port 22 and host 192.168.0.100
  5. tcpdump -nn -i eth0 i -c 100 -w /tmp/1.cap 指定抓去100次,并将结果存到指定的目录中的文件
  6. file /tmp/1.cap 这个文件中的内容为真正的数据流
  7. tcpdunp -r /tmp/1.cap 可以查看抓包信息,数据流信息
  8. yum install -y wireshark
  9. 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.url"

扩展

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

猜你喜欢

转载自my.oschina.net/u/3803446/blog/1808542