目录

系统性能分析

# 常用命令

查看 CPU 核数

cat /proc/cpuinfo | grep "cpu cores" | wc -l

top 按指定字段排序

top -o RES

ps 查询资源占用

# 按照 cpu 使用情况排序
ps -aux --sort -pcpu | less

# 按照 memory 和 cpu 使用情况排序,只看前 10 个
ps -aux --sort -pmem,pcpu | head -n 10

# 指定应用程序, php 和 php-fpm
ps -C php-fpm,php -o user,pid,pcpu,pmem,rss,start,time,command --sort -pmem

# 每 2 秒刷新一次
watch -n 2 "ps -aux --sort -%mem | head -n 10"

# TOP 命令

  • 第一行

    • load average: 0.02, 0.04, 0.00: 系统1分钟、5分钟、15分钟的CPU负载信息
  • 第二行

  • 第三行

    • Cpu(s):表示这一行显示CPU总体信息

    • 0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间

    • 0.7%sy:内核占用CPU时间百分比

    • 0.0%ni:改变过优先级的进程占用CPU的百分比

    • 99.3%id:空闲CPU时间百分比

    • 0.0%wa:等待I/O的CPU时间百分比

    • 0.0%hi:CPU硬中断时间百分比

    • 0.0%si:CPU软中断时间百分比

      注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

  • 第四行

    • Men:内存的意思
    • 8175320k total:物理内存总量
    • 8058868k used:使用的物理内存量
    • 116452k free:空闲的物理内存量
    • 283084k buffers:用作内核缓存的物理内存量
  • 第五行

    • Swap:交换空间 (需要开启交换区才显示此项数据)
    • 6881272k total:交换区总量
    • 4010444k used:使用的交换区量
    • 2870828k free:空闲的交换区量
    • 4336992k cached:缓冲交换区总量
  • # 进程信息
    • PID:进程的ID

    • USER:进程所有者

    • PR:进程的优先级别,越小越优先被执行

    • NI:值 Nice Value,表示静态优先级,范围是-20~+19,Nice值越大的进程的实际优先级越小,默认是 0

    • VIRT:Virtual Memory Size (KiB) 进程占用的虚拟内存,单位都是 KB。(进程执行时总的虚拟内存,并不一定完全映射到了物理内存上)

    • RES:Resident Memory Size (KiB) 进程占用的物理内存。(实际已映射的物理内存,真实占用的内存)

    • SHR:Shared Memory Size (KiB) 进程使用的共享内存。(例如在动态编译中引入的动态库,不同进程会使用同一个动态库,这部分内存是共享的)

    • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

    • %CPU:进程占用CPU的使用率

    • %MEM:进程使用的物理内存和总内存的百分比

    • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

    • COMMAND:进程启动命令名称

      详解进程的虚拟内存,物理内存,共享内存 (opens new window)

# free 命令

# 展示信息
  • total

    物理总内存

  • used

    当前正在运行的程序占用的总内存

  • free

    未使用的内存,(free = total - used - buff/cache)

  • shared

    进程间共享的内存

  • buffers

    操作系统预留,当进程需要时分配

  • cached

    最近使用的文件存储在 RAM 中

  • buff/cache

    Buffers + Cache

  • available

    在不交换空间的情况下,评估有多少内存可以用于启动新的应用程序

上次更新: 2024/11/05, 03:15:29