• Linux centos7日常运维——监控io性能、free内存命令、ps进程命令、查看网络状态、linux下抓包


    一、监控io性能

    Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。

    iostat -x磁盘使用

    iotop磁盘使用

    rrqm/s:   每秒进行 merge 的读操作数目。即 delta(rmerge)/s
    wrqm/s:  每秒进行 merge 的写操作数目。即 delta(wmerge)/s
    r/s:           每秒完成的读 I/O 设备次数。即 delta(rio)/s
    w/s:         每秒完成的写 I/O 设备次数。即 delta(wio)/s
    rsec/s:    每秒读扇区数。即 delta(rsect)/s
    wsec/s:  每秒写扇区数。即 delta(wsect)/s
    rkB/s:      每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
    wkB/s:    每秒写K字节数。是 wsect/s 的一半。(需要计算)
    avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
    avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
    await:    平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
    svctm:   平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
    %util:      一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

    二、free命令查看内存使用情况,系统自动分配一部分给buff/cache缓存

    free -m 

    free -g

    free -h

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

    磁盘数据-->内存(cache)-->cpu

    cpu数据-->内存(buffer)-->磁盘

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

     三、ps(process status)命令,查看系统当前进程,静态一次性列出,格式ps [参数]

    ps aux  ps -elf查看系统当前所有进程

    STAT进程状态

    D 不能中断的进程

    R run状态的进程

    S sleep状态的进程

     

    T暂停的进程

    Z僵尸进程

    <高优先级进程

    N低优先级进程

    L内存中被锁了内存分页

    s主进程

     

    |多线进程

    +前台进程

    杀死进程kill 1170

     查看进程路径,首先需要知道进程ID

     四、查看网络状态

     netstat查看系统状态

    netstat -lnp查看监听端口

    netstat -an查看系统的网络连接状态

    netstat -lntp 只看出tcp,不包含socket

    ss -an和netstat一样

    技巧:

    netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key," " ,sta[key]}'查看所有状态数字

    netstat -lnp查看监听端口

    查看tcp网络连接状态

    nestat -lntp只看出tcp,不包含socket

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

    tcp ip三次握手四次挥手

     

     五、linux下抓包

    抓包工具tcpdump  

    用法:tcpdump -nn 参数

    tcpdump -nn -i ens33

    tcpdump -nn -i ens33 port 80指定80端口

    tcpdump -nn -i ens33 not port 22 and host 140.206.78.11  不要22包,只要11ip包

    tcpdump -nn -i ens33 -c 100 -w  /tmp/1.cap 指定数据包100个并存到tmp

    tshark

    yum install -y wireshark

    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"

  • 相关阅读:
    利用 chunked 类型响应实现后台请求的监听
    C/C++ 中的宏/Macro
    SSL/TLS 链接的建立/握手
    C/C++ 中 `printf` 格式化
    多媒体文件的容器与编解码器的关系
    Unix 开发中的 Make 三连
    shell 中长命令的换行处理
    C++ float vs double
    Xcode 中配置 clang-format 格式化 C++ 代码
    C++ `endl` 与 ` ` 的区别
  • 原文地址:https://www.cnblogs.com/davery/p/8783426.html
Copyright © 2020-2023  润新知