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;

     
  • 相关阅读:
    Objective-C 和 Swift 第三方库使用
    如何在Swift的代码中使用OC的代码, 在OC的代码中使用Swift的代码?
    swift之水纹动画
    HandyJSON.Metadata.Class Xcode10.2, swift5.0 报错 linker command failed with exit code 1
    Python开发【第十篇】:CSS (二)
    Python开发【第十篇】:CSS --无内容点击-不进去(一)
    Python开发【第九篇】:HTML (二)
    Python开发【第九篇】:HTML --无内容点击-不进去(一)
    Python开发【第八篇】:网络编程
    Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
  • 原文地址:https://www.cnblogs.com/yulia/p/13681807.html
Copyright © 2011-2022 走看看