关于c++:Linux常见命令学习

49次阅读

共计 1239 个字符,预计需要花费 4 分钟才能阅读完成。

Linux 下过程状态详解

  1. top、uptime 等命令展现出的 load average,并非 CPU load average,而是零碎整体负载,包含了对磁盘资源的申请

    然而通常状况下,load average / CPU core number > 1 暗示零碎可能是 CPU BOUND

    计算公式:load average = TASK_RUNNING + TASK_UNINTERRUPTABLE

    Linux 下过程状态的划分:

    • R:TASK_RUNNING
    • S:TASK_INTERRUPTABLE
    • D:TASK_UNINTERRUPTABLE:这个状态个别呈现在过程与外部设备替换,内核的一些解决流程是无奈被中断的,如果此时容许中断,原有流程被插入一段解决异步信号的流程,过程与外部设备交互过程被中断,那么外部设备可能陷入不可控的状态,因而,此时不响应异步信号(kill -9 无奈杀死)
    • Z:TASK_ZOMBIE

Linux /proc 子系统文档

  1. 常见目录项

    • cmdline:命令行参数
    • cwd
    • exe
    • fd
    • maps
    • cgroup

top 命令详解

  1. top 命令常见参数

    • -c:输入残缺命令行
    • -H:显示每个线程而非过程的汇总(通过 pthread_setname_np)更敌对
    • -p pid:显示特定过程的信息
    • 交互命令:

      • m:切换显示内存的形式
      • t:切换显示 CPU 负载的形式
      • c:切换显示残缺命令行与否
      • M:按内存排序
      • P:按 CPU 排序
      • T:按运行工夫排序
  2. perf perf record 通过挂载到某个过程上生成 perf.data,perf report 读取 perf.data 取得信息
  3. address-sanitizer:原理是 shadow poison,可能探测 dangling pointer、buffer overflow、memory leak

    • [Use after free] (dangling pointer dereference)
    • [Heap buffer overflow]
    • [Stack buffer overflow]
    • [Global buffer overflow]
    • [Use after return]
    • [Use after scope]
    • [Initialization order bugs]
    • [Memory leaks]

iostat 命令详解

  1. iostat 各列阐明:个别开启 -x 参数取得具体数据

    • rrqm/wrqm:向该设施申请次数
    • r/w:每秒读写次数
    • rkB/wkB:每秒读写数据量
    • avgrq_sz:每次 IO 操作的均匀扇区数
    • avgqu_sz:每次 IO 操作的期待队列长度
    • await:IO 等待时间 (ms)
    • svctm:IO 解决工夫 (ms)
    • util:IO 队列非空的工夫比例

netstat 命令详解

  1. netstat 参数

    • -a:列出所有(不含 listen)
    • -t/u : tcp/ udp
    • -n:优先数字
    • -l:列出处于监听状态
    • -p:列出程序名
    • -s:依照协定划分
  2. 丢包场景划分
  • 缓冲区满:netstat RecvQ 很大
  • 半连贯满:syn 并发数量大,syn flooding。调节 net.ipv4.tcp_max_syn_backlog
  • 链路丢包、网卡丢包
正文完
 0