• linux性能诊断神器pstat


    为什么需要pstat?

    知道系统运行了哪些服务也许并不能告诉你是谁拖慢了系统。top命令可以报告CPU占用情况以及I/O等待时间,但这可能也不足以找出导致系统过载的任务。

    跟踪I/O以及上下文切换有助于揪出问题的源头。

    dstat能够以固定的时间间隔显示出磁盘、网络、内存使用以及所运行任务的相关信息。

    dstat实用工具可以为你指出系统潜在的瓶颈。

    在这里插入图片描述

    安装

    apt-get installdstat

    yum install dstat

    需要依赖python2

    实战与分析

    CPU大部分时间都处于闲置状态,磁盘活动很少。系统产生了网络流量,不过也只是每秒钟几个分组而已。该系统并没有发生换页操作。Linux只有在主存不足的时候才会将内存页面换出到磁盘。尽管换页机制可以让系统运行比原先更多的程序,但是磁盘的访问速度要比内存慢了数千倍,由此也会相应地拖慢系统的运行速度。

    参数

    ❏ --top-bio:用于描述磁盘使用情况,可以显示出执行块I/O最多的进程。

    ❏ --top-cpu:用于描述CPU使用情况,可以显示出CPU占用率最高的进程。

    ❏ --top-io:用于描述I/O使用情况,可以显示出执行I/O操作最多的进程(通常是网络I/O)。

    ❏ --top-latency:用于描述系统负载情况,可以显示出延迟最高的进程。

    ❏ --top-mem:用于描述内存使用情况,可以显示出占用内存最多的进程。

    原理分析

    有些数据库查询操作需要在内存中构建大规模的数据表,这种操作会引发间歇性的系统换页。可以修改查询语句,使用IN操作符来代替JOIN操作符,以此降低内存需求。

    每一次系统调用(read writ等e)或者时间片到期,轮到另一个进程访问CPU的时候都会发生上下文切换(context switch,csw)。无论是I/O操作还是调整进程内存占用都需要执行系统调用。

  • 相关阅读:
    代码随想录训练营第33天|休息日 小结
    千兆光模块和万兆光模块的差别是什么?
    neo4j mongoDB Hbase简单了解
    Codeforces Round 898 (Div. 4) 题解 | JorbanS
    智能车菜单编写(1)
    ESP8266智能家居(5)——开发APP深入篇
    魔兽mangos用户数据自动备份脚本
    18张图,直观理解为什么神经网络这么有效?
    CRM与销售能力自动化SFA的关系
    Good idea of English learning
  • 原文地址:https://blog.csdn.net/MyySophia/article/details/126648047