zoukankan      html  css  js  c++  java
  • 性能测试关注指标

    一、接口请求响应指标

    重点关注以下几个指标:

    • 需满足的并发数
    • TPS(每秒处理事务的能力)
    • 响应时间(平均响应时间、90%响应时间)
    • 错误率

    性能测试指标通过标准

    需满足的并发数
    (举例:每天8W用户访问,平均在线时长10分钟,1天用户24小时内使用系统)
    C = 80000 * 0.166/24=553
    注:0.166为10/60得出

    C = nL/T
    C^= C + 3*根号C 
    其中C为平均并发用户数,n为login session的数量,L是login session的平均长度,T是值考察的时间长度
    C^为并发用户数峰值

    需满足的TPS
    TPS = (80000*80%)/(20%*8*60*60)=11/sec

    据二八原则:
    20%常用时间,满足80%业务量
    TPS = n*80%/(20%*活跃时间*60*60)
    注:活跃时间一般为8小时

    响应时间

    根据在并发情况下的响应时间2/5/10原则,最长不能超过10s

    错误率

    具体系统具体要求,一般小于万分之一

    缓存命中率

    具体系统具体要求,一般大于85%通过

    CPU占用率

    70% 好,85% 坏,90%+ 很差

    内存使用率

    一般小于80%通过

    二、服务器性能指标

    重点关注以下几个指标:

    • 线程对cpu占用(关注)
    • 对内存占用(关注)
    • 磁盘I/O
    • 网络情况

    性能项

    资源

    评价

    CPU占用率

    70%

    85%

    90%+

    很差

    磁盘I/0

    <30%

    <40%

    <50%+

    很差

    网络

    <30%带宽

    运行队列

    <2*CPU数量

    内存

    没有页交换

    每个CPU每秒10个页交换

    更多的页交换

    很差

    使用命令查看CPU、内存变化情况:

    top -b -d 1 -p 27854 > 0904log

    p是进程号  ,d是1秒收集一次,要用root用户(sudo su -)

    查看进程号 ps ef |grep acs-job  若重启服务器后,pid会发生变化,必须重新获取

    三、SQLServer数据库查询慢语句(需数据库管理员权限)

    --总耗CPU最多的前20个SQL:
    SELECT TOP 20
        total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],
        qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
        last_execution_time AS [最后一次执行时间],max_worker_time /1000 AS [最大执行时间(ms)],
        SUBSTRING(qt.text,qs.statement_start_offset/2+1, 
            (CASE WHEN qs.statement_end_offset = -1 
            THEN DATALENGTH(qt.text) 
            ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) 
        AS [使用CPU的语法], qt.text [完整语法],
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
    FROM sys.dm_exec_query_stats qs WITH(nolock)
    CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
    WHERE execution_count>1
    ORDER BY  total_worker_time DESC


    --平均耗CPU最多的前20个SQL:
    SELECT TOP 20
        total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],
        qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
        last_execution_time AS [最后一次执行时间],min_worker_time /1000 AS [最小执行时间(ms)],
        max_worker_time /1000 AS [最大执行时间(ms)],
        SUBSTRING(qt.text,qs.statement_start_offset/2+1, 
            (CASE WHEN qs.statement_end_offset = -1 
            THEN DATALENGTH(qt.text) 
            ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) 
        AS [使用CPU的语法], qt.text [完整语法],
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
    FROM sys.dm_exec_query_stats qs WITH(nolock)
    CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
    WHERE  execution_count>1
    ORDER BY (qs.total_worker_time/qs.execution_count/1000) DESC

     

    四、mysql慢查询相关命令

    -- 检查慢查询命令是否开启

    show variables like '%query';

    -- 查看慢查询命令

    select * from mysql.slow_log;

     
  • 相关阅读:
    SharePoint 2013 图文开发系列之自定义字段
    SharePoint 2013 图文开发系列之Visual Studio 创建母版页
    SharePoint 2013 图文开发系列之代码定义列表
    SharePoint 2013 图文开发系列之计时器任务
    SharePoint 2013 图文开发系列之应用程序页
    SharePoint 2013 图文开发系列之事件接收器
    SharePoint 2013 图文开发系列之可视化WebPart
    SharePoint 2013 图文开发系列之WebPart
    SharePoint 2013 对二进制大型对象(BLOB)进行爬网
    SharePoint 2013 状态机工作流之日常报销示例
  • 原文地址:https://www.cnblogs.com/yulia/p/13681807.html
Copyright © 2011-2022 走看看