美文网首页
Linux性能分析(未完待续)

Linux性能分析(未完待续)

作者: Yves_Chen | 来源:发表于2020-05-12 23:22 被阅读0次
    Linux性能.png

    Linux性能

    CPU

    平均负载

    平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均活跃进程数

    可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。

    不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

    当平均负载比 CPU 个数还大的时候,系统已经出现了过载。

    uptime

    上下文切换

    如果系统的上下文切换次数比较稳定,那么从数百到一万以内,都应该算是正常的。但当上下文切换次数超过一万次,或者切换次数出现数量级的增长时,就很可能已经出现了性能问题。

    CPU使用率

    内存

    工具

    stress

    stress 是一个 Linux 系统压力测试工具

    参数解释

    -? 显示帮助信息

    -v 显示版本号

    -q 不显示运行信息

    -n 显示已完成的指令情况

    -t --timeout N 指定运行N秒后停止

           --backoff   N   等待N微妙后开始运行
    

    -c 产生n个进程 每个进程都反复不停的计算随机数的平方根

    -i 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上

    -m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数

          --vm-bytes B  指定malloc时内存的字节数 (默认256MB)
    
    
    
         --vm-hang N   指定在free钱的秒数
    

    -d --hadd n 产生n个执行write和unlink函数的进程

         -hadd-bytes B  指定写的字节数
    
    
    
         --hadd-noclean  不unlink  
    

    模拟一个 CPU 使用率 100% 的场景

    $ stress --cpu 1 --timeout 600

    模拟 I/O 压力,即不停地执行 sync

    $ stress -i 1 --timeout 600

    模拟是 8 个进程过载

    $ stress -c 8 --timeout 600

    sysbench

    sysbench 可以进行以下测试:

    CPU 运算性能测试

    磁盘 IO 性能测试

    调度程序性能测试

    内存分配及传输速度测试

    POSIX 线程性能测试

    数据库性能测试(OLTP 基准测试,需要通过 /usr/share/sysbench/ 目录中的 Lua 脚本执行,例如 oltp_read_only.lua 脚本执行只读测试)

    以 10 个线程运行 5 分钟的基准测试,模拟多线程切换的问题

    $ sysbench --threads=10 --max-time=300 threads run

    sysstat

    • mpstat

      一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU的性能指标,以及所有CPU的平均指标。

    • pidstat

      一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

    每隔 1 秒输出 1 组数据(需要 Ctrl+C 才结束)

    -w 参数表示输出进程切换指标,而 -u 参数则表示输出 CPU 使用指标

    $ pidstat -w -u 1

    每隔 1 秒输出一组数据(需要 Ctrl+C 才结束)

    -wt 参数表示输出线程的上下文切换指标

    $ pidstat -wt 1

    • vmstat

      分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。

    每隔 1 秒输出 1 组数据(需要 Ctrl+C 才结束)

    $ vmstat 1

    /proc

    man proc

    • /interrupts
    • /stat
    • /[pid]/stat

    perf

    相关文章

      网友评论

          本文标题:Linux性能分析(未完待续)

          本文链接:https://www.haomeiwen.com/subject/fqpwnhtx.html