zoukankan      html  css  js  c++  java
  • 高性能产品必由之路

    ★★★性能测试包括
    1.横向扩展能力
    2、数据库优化
    3、尽量让一台机器能够承载更多的用户请求
    ★★★为什么要进行性能测试
       能够有效评估系统的性能指标,用于系统的性能评估
       能够识别系统的性能瓶颈,协助性能调优
       能够指导突发流量承载方案的制定
       能够用于系统运维成本的预算


    ★★★性能测试概要
    什么是性能测试
    1.性能测试就是通过技术的手段模拟大量用户同时访问被测应用,观察,记录和分析系统的各项性能指标的过程。
    2.性能测试的目标是评估系统的性能瓶颈,预测系统的最大用户负载能力。
    --性能测试的两个关键点
       模拟大量并发用户
       监控系统负载参数分析系统瓶颈
    --性能指标
       ·平均响应时间(TTLB)-平均每个请求从发送到接收响应的时间
       ·合理的平均平均响应时间-2/5/10原则(2秒之内给客户响应被用户认为是非常有吸引力的用户体验。在5秒之内响应客户被认为比较不错的用户体验。在10秒内给用户响应被认为糟糕的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的)
       ·平均响应时间的业务影响
       ·系统资源类
           CPU--CPU的占用率
           内存--内存的占用率,换页数等
           I/O--读写请求数、读写量等
           带宽--进站出站带宽占用率
    ★★★性能测试的一般分类
        负载测试
          为了验证系统设计负荷正常业务负载情况下系统性能表现的测试
        压力测试   
          为了验证系统在极端负载情况下的性能表现的测试    

    ☆☆☆☆☆☆☆☆性能测试相关工具介绍



    ···top(监控每一个进程的资源占用)
       top能够获取所有每一个进程所占用的资源情况
         PID进程运行的ID
         USER运行该进程的用户名
         PR表示进程可被执行的优先级别,值越小,优先级别越高越早被执行。
        NI进程Nice值,进程可被执行的优先级的修正数值PR(new)=PR(old)+nice
       VIRT虚拟内存的大小
       RES真实的物理内存的大小
       SHR 共享内存的占用大小
       %MEM 内存占用的百分比
       %CPU cpu占用的百分比
       TIME+真正运行该进程的时长
       COMMAND是什么在运行这个进程
    --输入o打开下面的界面(显示那些列,列显示的位置)
       可以上移(shift+对应字母),下移(对应字母)
    --输入f
       可以想要显示哪一个列就输入相对应字母,取消显示也是输入相对应的带有星号的字母
    --输入F或者O(是以哪一种方式进行排序)
      带星号的表示当前时以什么样的方式进行排序的(输入对应列的名称可以自定义排序)
      比如输入%MEM对应的n实现以MEM进行排序
    --top -ab -n 1
      a表示按照内存进行排序
      b表示全部进程进行显示
      -n 1表示显示一次,不需要获取当前的最新的系统负载情况
    --可以结合grep进行使用
      eg: top -ab -n 1 | grep python




    ···sysstat(统计系统的各种资源占用情况)
    ---首先是安装sysstat 可以选择yum安装
       这里采用光驱挂载的方式进行安装
       1.到/home/wangxiaolan/rom  挂载mount/dev/cdrom /home/wangxiaolan/rom
       2.cd /home/wangxiaolan/rom    cd Packages
       3.rpm -ivh sysstat-9.0.4-27.el6.i686.rpm
       4.安装完成进行配置并且修改
         默认的是每十分钟获取一次
         作为开发者我们最好修改为每一分钟一次
       5.查看获取到的数据存放的位置
         cd /var/log/sa
         其中sa开头的文件表示每分钟执行的,sar表示每天的总结
    ---- sar -q -f+对应的文件名(查看CPU的任务数和任务的繁重程度)  
    ---- sar -p -f+对应的文件名(查看CPU的占用率,占用百分比)
         %nice:改过优先级的进程CPU占用率
         %steal:管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比
        %iowait:磁盘读写等待占用的CPU百分比
    ---- sar -r -f+对应的文件(查看内存)
        kbbuffers是针对磁盘块的缓存;kbcached是针对文件系统的,是文件的缓存;kbcommit为了保证程序的正常运行需要的内存,相应的%commit是百分比
    %memused+%commit大于百分之百会导致内存频繁的换页,动用虚拟内存。
    ---- sar -B -f+对应的文件名
    ---- sar -W -f+对应的文件名(和swap进行的数据的写入写出)
    ---- sar -b -f+对应的文件名(查看I/O的情况)
        tps:每秒钟物理设备的I/O传输总量
        rtps:每秒钟从物理设备读入的数据总量
        wtps:每秒钟向物理设备写入的数据总量
        breads/s:每秒钟从物理设备读入的数据量,单位为块/s
        bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
        tps=rtps+wtps;
        当wtps过高时表示写操作占用过高,优化时我们可以将我们要写入磁盘的打包一起写入磁盘
    ---- sar -d -f+对应的文件名
       rd_sec/s:每秒读扇区的次数.
       wr_sec/s:每秒写扇区的次数.
    ---- sar -n DEV -f+对应的文件名(查看network的情况)
    ---- sar -n EDEV -f +对应的文件名(显示关于网络错误的统计数据)




    ···fio(评估磁盘读写性能极限)
    ----首先是进行安装(可以选择yum安装)这里通过解压缩的方式进行安装
       1.进入tar目录下,对压缩包尽心解压
        tar -jxvf fio-2.1.4.tar.bz2
       2.进入解压后的文件夹、
        cd fio-2.1.4
       3.make && make install
    FIO分顺序读,随机读,顺序写,随机写,混合随机读写模式。此处以顺序读的模式进行演示




    ···Jmeter(Apache组织开发的性能测试工具)
        支持多类型的测试 web http https ftp tcp mongodb ldap
        linux上安装同上


    ★★★被测系统介绍(linux上安装ecshop)
    1.上传压缩包到服务器并解压(zip解压用的是unzip)
    2.复制文件夹upload到根目录下ECShop
    3.修改ecshop的所有者
    chown -R apache:apache ecshop
    4.创建日志文件(因为配置的时候用到)
    进入ecshop下创建日志 mkdir log
    同样修改所有者(同上)
    5.配置apache服务器
    cd /usr/local/http2/conf/httpd.conf
    6.重启apache服务器
    service httpd restart
    7.开始安装






























































  • 相关阅读:
    PL/SQL详细介绍
    Linux服务器性能评估(转)
    oracle命令(转)
    Makefile介绍(转)
    delphi 指针
    浏览器的工作原理(转)
    高性能分布式计算与存储系统设计概要(上)(转)
    HTTP协议详解(转)
    MySQL性能优化(转)
    redhat 6.2安装telnet服务
  • 原文地址:https://www.cnblogs.com/wxlf/p/8052018.html
Copyright © 2011-2022 走看看