并发与并行4 s! |& T" G& p( }5 L
: b) C$ N1 M* H) ?% M0 F
, y* Z$ }& E( R- 并发:由于CPU数量或核心数量不够,多个任务并不一定是同时进行的,这些任务交替执行(分配不同的CPU时间片,进程或者线程的上下文切换),所以是伪并行。
4 U8 `8 g& a6 _7 ~( F/ ^ p - 并行:多个任务可以在同一时刻同时执行,通常需要多个或多核处理器,不需要上下文切换,真正的并行。
& P/ j7 Q, w# f$ ] 并发量(Concurrency)
* `& q, a- _% S8 O4 q& o+ E% f7 N8 Y% L! X" k' }! r* q; s' ^$ Y
. U; R( ^& K# n H& [- 概念:并发或并行,是程序和运维本身要考虑的问题。而并发量,通常是不考虑程序并发或并行执行,只考虑一个服务端程序单位时间内同时可接受并响应多少个请求,通常以秒为单位,也可乘以86400,以天为单位。) W {* y V' g/ [, u) `4 v9 V
- 计算方法,通常通过一些压测工具,例如ApiPost压测,或者ab压测来统计,依ab为例:) y4 O# p% P9 L5 E4 L
Window系统:Apache下bin目录有个ab.exeCentOS系统:yum -y install httpd-tools.x86_64ab -c 并发数 -n 请求数 网址ab -c 10 -n 150 127.0.0.1/ 表示对127.0.0.1这个地址,用10个并发一共请求了150次。而不是1500次,Time taken for tests: 1.249 seconds,说明并发量为 150 / 1.249 ≈ 120 并发,表示系统最多可承载120个并发每秒。吞吐量(Throughput)
1 x1 a. o; A! n1 w, ~
4 B# _6 I7 k+ C. N; h: Y: @! f5 V' f) q
- 概念:吞吐量是指系统在单位时间能够处理多少个请求,TPS、QPS都是吞吐量的量化指标。 相比于QPS这些具有清晰定义的书面用语,吞吐量偏向口语化。
, U+ Y% w, {3 s3 c) X, { 日活
) g X& Y5 R8 r6 }/ g! O' }' s0 c9 }; {
! o Z$ x4 Z+ u( ~* t+ I# q: |
- 概念:每日活跃用户的数量,通常偏向非技术指标用语,这个概念没有清晰的定义,销售运营嘴里的日活,可能是只有一个人1天访问100次,就叫做日活100,也可以说是日活1,中位数日活50,显然意义不大。8 [+ ^3 w8 e1 o% f
QPS(Query Per Second). R& V1 b5 a; h/ k6 n9 ?8 g
5 q- K* `- a! n! [9 ^) `
; k$ L( ^1 A4 w' |" F- 概念:每秒查询次数,通常是对读操作的压测指标。服务器在一秒的时间内能处理多少量的请求。和并发量概念差不多,并发量高,就能应对更多的请求。
+ {3 X1 Y) z9 {6 K2 y - 计算方法,通常通过一些压测工具,例如ApiPost压测,或者ab压测来统计,依ab为例:7 X' \) s& s- j
ab -c 10 -n 150 127.0.0.1/其中返回一行数据:Requests per second: 120.94 [#/sec] (mean)表示该接口QPS在120左右。+ M/ b- M( J" ]1 z, h% o7 o7 e: \
( t7 a9 R! D1 p7 q. `5 o! j
TPS(Transactions Per Second)7 D2 i7 T; f A& I& m
x/ X7 T7 z: A: s+ G* _
/ f8 u1 Q' Z: e- 概念:每秒处理的事务数目,通常是对写操作的压测指标。这里的事务不是数据库事务,是指服务器接收到请求,再到处理完后响应的过程。TPS表示一秒事件能够完成几次这样的流程。
7 h" {1 A0 \& [) ^9 I TPS对比QPS
( @( `0 n" G* Y3 |: L# ^9 G. T/ k0 I5 h
6 s, C/ F% U6 L0 u6 P- QPS:偏向统计查询性能,一般不涉及数据写操作。2 g. T9 H/ H @' D1 h. f
- TPS:偏向统计写入性能,如插入、更新、删除等。( k" z: _: J) I I2 |7 G6 S
RPS(Request Per Second)
5 j% d6 a; ]5 A( x7 [( {( U: X3 p% d- i7 w
3 C0 Q8 y- Z( G; P+ Y( K- 概念:每秒请求数,和QPS、TPS概念差不多。没有过于清晰的定义,看你怎么用。, e0 l5 }2 {# w# u1 V
RT(Response Time)
^: K& p: E. B2 Y$ _$ f$ S$ A/ |* t" S: Q4 F0 f
4 C R3 \6 l& {& o8 a- 概念:响应时间间隔,是指用户发起请求,到接收到请求的时间间隔,越少越好,应当控制在0~150毫秒之间。
, U$ O! ?3 G6 h. R0 C PV(Page view)
( O5 O" }' [* Q8 E2 s
w1 Z9 o% F1 Z( @! w: r/ f |* Z. M! c
$ a! v+ k+ X& ?# t2 p7 K- 概念:浏览次数统计,一般以天为单位。范围可以是单个页面,也可以是整个网站,一千个用户一天对该页面访问一万次,那该页面PV就是一万。9 p% ^4 ~/ i+ @7 _0 X! E& |, U
0 V3 C* M9 e9 n2 d' O% P( `
' |- q# e1 k' l% P% H
UV(Unique Visitor)
: K& L7 W# u$ O+ L) C* |) K- E9 z" \- C8 B+ K
( t j5 k# _, G6 V, H# _$ o- 概念:唯一访客数。时间单位通常是天,1万个用户一天访问该网站十万次,那么UV是一万。" y/ f: W, i. b; T
- 实现方案:已登录的用户可通过会话区分,未登录的用户可让客户端创建一个唯一标识符当做临时的token用于区分用户。
5 ^+ ]( W1 R; o- ^1 r
) O# S. \# [! W# c+ P
" @2 k: z6 X1 y# u3 E RDAU(Daily Active Use)
) a7 j1 W, f4 S! ^, }! @- k |
6 @, Y% a& E) d4 t
m& w& C$ O* F; @# T7 s9 t- 概念:日活跃用户数量,来衡量服务的用户粘性以及服务的衰退周期。统计方案各不相同,这要看对活跃的定义,访问一次算活跃,还是在线时长超10分钟算活跃,还是用户完成某项指标算活跃。( M' C% x9 e% E3 ]# A' M
( \( p3 i; q! r8 r2 }8 T+ b1 t
6 ^3 r& H% Z# K$ TGMV(Gross Merchandise Volume)
+ b( J; d" J w# F4 n+ W' s {8 x7 o" u! r$ X: I
! E$ L- M+ X8 x( F4 C& c
- 概念:单位时间内的成交总额。多用于电商行业,一般包含拍下未支付订单金额。
, j, x/ D, ]9 r& x2 i7 q9 W r$ F 3 |. e- a" Y8 u0 T, @, ]( V( H% U
1 u: L4 f" d. Z I+ R
原文:https://juejin.cn/post/7400281441803403275
# M1 G4 c& l# ]作者:小松聊PHP进阶
. N" J5 W3 W: Z# T#记录我的8月生活# |