zoukankan      html  css  js  c++  java
  • 高性能-性能评估及工具

    带着问题去思考!大家好

    性能问题是架构前想的还是之后想的?评估什么?

      在设计阶段时,你需要理解整体架构和约束条件,不然你就回遗漏一些关键点,这将严重制约程序的运行,设计阶段就把性能目标预先考虑进去。当然安全问题也是一样的。一旦项目进入测试,部署和维护阶段,就得把更多的经理投入到微观优化,具体代码方式的分析,减少内存占用等工作。

      我们评估什么呢?评估的东西太多,就拿内存来说,显然需要评估内存占用情况,以便减少内存小号,查看那些类内存呢?专用工作集内存,提交大小,页面缓存池,峰值工作机,.NET堆内存大小,还是大对象堆内存。

    平局值还是百分位值


    用什么统计值才合适》多数人会优先选用平均值,但是应该考虑一下百分位值。如果对程序的可用性有要求,肯定会用到百分比形式的性能指标。例如:数据库请求的平均延迟必须少于10ms。95%以上的数据库请求延迟必须少于100ms。

    (P/100)xN,P为百分位值,N为数据个数。

    假定测试由0代垃圾回收导致的暂停服务时间

    1,2,2,4,5,5,8,10,10,11,11,11,15,23,24,25,50,87;

    18个样本数据。平均值为17ms,95%百分位值远大于50ms。如果只看平均值,你也许不会发现垃圾回收引起的延时问题。你还会发现,中间值(50%百分位值)与平均值的差距相当大,那些占比高的数值,对平均值的影响往往比较大。这样不具备统计学意义,也许只是偶然,可以用一条经验法则来确认所需的样本数,0-99%需要100个,99.9%需要1000个,以此类推,可以从数学角度了解到底需要多少样本数才够用。

    评估工具

      “性能监视器”,所属Category和名称,Processor Time计数器属于Process类,它的多个实例分别对应了当前存在的各个处理器。有些性能计数器还带有“元实例”,

      我们先熟悉一下基本的操作系统术语

    •   物理内存---安装在计算机中的物理芯片内存,只有操作系统才能直接管理物理内存。
    •   虚拟内存---属于进程的逻辑内存块。虚拟内存可以大于物理内存。虚拟内存中连续的内存块,在物理内存中不一定是连续的,进程中的所有内存地址都是指虚拟内存。
    •   保留内存---在虚拟内存地址空间中为进程预留的地址段,且永远不会被分配。保留内存无法用于内存分配,因为它根本不存在。只是一段内存地址
    •   已提交内存---物理存在的一段内存,可能位于RAM中,也可能在磁盘上,
    •   内存页---内存单位,每页包含了多个已分配的内存块,单位通常KB
    •   页面交换----在多个虚拟内存区域之间交换内存页的过程,内存页即可能与其他进行交换(软交换),也可能与硬盘交换(硬交换)。软交换的速度可以非常快,只要把内存映射到当前进程的虚拟地址空间即可,硬交换则涉及到速度较慢的硬盘数据交换。你的程序尽量避免触发硬交换。
    •   调入内存页--把内存页从其他地方送入当前进程,
    •   调出内存页--把内存页从当前进程送出至其他地方。比如磁盘
    •   上下文切换---保存和恢复线程或进程状态的过程,因为线程数目通常总是多余可用处理器数,所以往往每秒会发生多次上下文交换
    •   内核模式--该模式下允许操作系统修改底层硬件参数,
    •   用户模式--用于执行普通指令的非特权模式,

    Process类计数器可以提供很多重要信息。大家不妨试一试;

    PerfView

    他是由微软的.NET性能架构师Vance Morrison编写的。

    当然还有很多工具,。CLR Profiler,Windbg.MeasureIt。这里不在赘述,大家可以通过其他途径获取了解。这些只不过是一些可视化程序。更重要的是评估,评估在评估

  • 相关阅读:
    Saltstack module gem 详解
    Saltstack module freezer 详解
    Saltstack module firewalld 详解
    Saltstack module file 详解
    Saltstack module event 详解
    Saltstack module etcd 详解
    Saltstack module environ 详解
    Saltstack module drbd 详解
    Saltstack module dnsutil 详解
    获取主页_剥离百度
  • 原文地址:https://www.cnblogs.com/ccaa/p/12548674.html
Copyright © 2011-2022 走看看