Python 测开27期 - julia - 学习笔记 - Linux 常用命令-性能统计

Linux 常用命令之性能统计

常用性能指标

  • cpu 代表算法的高效性
  • mem 代表数据结构的使用合理性
  • net io 等更多指标

统计方法

  • 临时性分析 命令交互
  • 系统性分析 prometheus grafana

CPU使用统计

cpu 信息 /proc/cpuinfo

系统负载与进程 cpu 占用 top

cpu 的关键指标

  • cpu 利用率 进程的 cpu 利用情况
  • load average 系统负载情况

ps 命令的 cpu 是平均 cpu 利用率,不适合做性能分析

内存(mem)占用统计

常用命令

进程级别的内存分析

网络连接(Net)统计

查看网络连接

netstat -tnp | head -10

网络状态

  • ESTABLISHED 成功连接 The socket has an established connection
  • SYN_SENT The socket is actively attempting to establish a connection
  • SYN_RECV A connection request has been received from the network.
  • FIN_WAIT1 The socket is closed, and the connection is shutting down.
  • FIN_WAIT2 Connection is closed, and the socket is waiting for a shutdown from the remote end
  • TIME_WAIT 主动关闭 The socket is waiting after close to handle packets still in the network
  • CLOSE The socket is not being used
  • CLOSE_WAIT 被动关闭 The remote end has shut down, waiting for the socket to close.
  • LISTEN The socket is listening for incoming connections

数据统计

netstat -tn | awk 'NR>2{print $NF}'| sort | uniq -c | sort -nr

统计命令分类

  • 排序
  • 去重
  • 统计

排序 sort

  • sort 常用参数
    • -b:忽略开头的空白字符
    • -f:将小写字母看做大写字母
    • -h:根据存储容量排序(KB、MB、GB)
    • -n:按数字排序
    • -o:把结果写入文件
    • -r:以相反的顺序来排序
    • -t:指定分隔符,默认为空格
    • -V:按照数字版本排序
    • -k:指定排序的关键字,与-t 参数配合使用

去重 uniq

  • uniq 常用参数
    • -c:统计重复出现的次数
    • -d:所有邻近的重复行只被打印一次。重复次数要大于等于 2
    • -D:所有邻近的重复行将全部打印
    • -f:跳过对前 n 个列的比较
    • -s:跳过对前 n 个字符的比较
    • -w:只对每行前 n 个字符进行比较

统计数量 wc

  • wc 常用参数
    • -c:统计字节数:chars
    • -l:统计行数
    • -w:统计单词数
    • -L:打印最长行的长度

进程与线程

进程

  • 可执行程序的运行态
  • 操作系统调度的基本单位
  • 线程容器
  • 进程本身包含指令、数据等资源

线程

  • 进程中被执行的最小单元
  • cpu 调度的基本单位
  • 线程带有指令、数据等资源

进程的生命周期

  • created sleep 100 ./demo.py
  • ready
  • running
  • waiting
  • terminated kill killall

进程状态

  • D uninterruptible sleep (usually IO)
  • R running or runnable (on run queue)
  • S interruptible sleep (waiting for an event to complete)
  • T stopped by job control signal
  • t stopped by debugger during the tracing
  • W paging (not valid since the 2.6.xx kernel)
  • X dead (should never be seen)
  • Z defunct (“zombie”) process, terminated but not reaped by its parent

常用进程管理命令

  • ps 进程列表快照
  • top 交互式进程观测
  • kill killall 结束进程
  • fg 进程切换到前台
  • bg 进程切换到后台
  • ctrl z 挂起进程

ps 命令

  • unix 风格参数 ps -ef
  • bsd 风格参数 ps aux
  • gnu 风格参数 ps --pid pidlist