LR

xiaoxiao2021-02-27  527

一:前端性能指标

1.响应时间:快不快

2.响应的吞吐量:每秒钟服务器的响应的大小,即网路上传输的大小,两个指标:

    (1)服务器带宽

              明确:位(bit)最小单位,字节(byte)等于8个比特,KB=1024个字节,1MB=1024*1024B=1024*1024字节

                         带宽100M指的是每秒钟可传输多少位,单位(位/秒) 100M=1000k=(1000*1000)bit位=(100M/8)字节=12.5M字节每秒;

                         吞吐量指的是每秒钟传输多少字节,如为每秒钟32K字节=0.032M字节;

              结论:吞吐量小于带宽,说明带宽够用;每个用户的带宽就是0.032M/10=0.0032M=3.2K

   (2)客户端带宽

            例如1000个用户,服务器带宽100m就是1秒钟12.5m字节,吞吐率是10m字节/S 那么10M<12.5M,带宽够用;

            如果10M/虚拟用户数,就是每个用户的带宽10kb/s 

3.每秒的事务数处理量(TPS):

      (1)每秒钟处理事务的数量,脚本中怎么定义的事务,就是什么事务,TPM每分钟的事务处理量;

      (2)直接和我们的性能需求相关的,如果一次登陆就是一个事务,我们需要每天500次的登陆,系统支持500个事务。

4.点击率(HPS)-用户每秒发送的HTTP请求的数量

       意义不到,评价客户端发送请求的多少,虚拟用户越多点击率越多;服务器处理速度越快,处理速度也快,点击率也越大。

二:后端性能指标

1.CPU 

    (1)CPU使用率:%Processor Time

    (2)CPU处理器队列长度:(CPU忙时,需要排队的长度)Processor Queue Length  <2*内核数  如果是4核的,小于2*4=8个;

2.带宽:

     (1)每秒接收的数据量,从客户端接收到数据量,低于下行带宽/8   Byte Receive/sec ;

     (2)每秒发送的数据量,发给客户端的数据量,低于上行带宽/8  Byte sent/sec 。

3.内存

     (1)内存使用率,可用内存数量(Avalable Memorry),单位为M,“页”是内存的存储数据的单位

     (2)内存的页交换频率(page/sec)内存和虚拟内存之间的交换程度,也是内存和硬盘之间的数据交换,这个值越低越好 

    缓存:分配给一个应用程序使用的内存,是内存层面上的缓存,不是浏览器在硬盘上保存的静态资源

   虚拟内存:利用一块硬盘区域模拟内存操作,在很早之前内存贵且小,硬盘大且便宜

4.硬盘:所有的程序数据都保存在硬盘上,程序运行时数据保存在内存上

     (1)硬盘使用率:LogicDisk  %disk time

      (2)硬盘队列长度Avg Disk Length(Logic Disk C)

三:内存、硬盘、CPU的关系

CPU的处理频率、内核数量、一级缓存、二级缓存、三级缓存 缓存和内存直接数据交换

硬盘:本身自带缓存,16M 32M 固态硬盘:512M,1G

四:多线程

1.多线程应用

下载软件:多线程;CPU:多核多线程;边听歌,边上网,边聊天,边工作;

分布式应用服务器:多线程,每个线程负责一个用户请求;

数据库:多线程,每个线程处理一个SQL请求

2.线程池

用于管理多线程的一种机制,可以设置线程数,但是线程主要是消耗CPU资源,CPU资源是有限的,CPU满就会变慢,

队列变长系统不至于奔溃,内存满了就会奔溃,一般设置整个系统资源的四分之三,就可以了。

3.动态影响:

(1)如发一个帖子时间3s,60秒的时间内可以发送20个请求,如果没发个帖子暂停2s,请问60S可以发多少

(2)三层架构 C-S-D,瓶颈可能出现在任意一层,S端线程数是100,调成1000个,可以吗?

(3)如果线程数修改成1000,服务器可以了,但是数据库那面可以吗?数据库也要设置1000个线程

4.演示案例

如APACHE服务器线程数调整为10,并发10个用户没有问题;如果并发20个用户,显示连接服务器超时

注:每个应用系统都有线程数的设置,每个应用程序也有缓存的设置,如Tomcat下java内存的设置,这些都需要关注

转载请注明原文地址: https://www.6miu.com/read-2151.html

最新回复(0)