第三章、服务器并发处理能力
3.1 吞吐率
单位时间请求数(reqs/s),也指单位时间数据传输量
一些web服务器提供了查看吞吐率的方法,例如apache的mod_status模块
压力测试前提条件
1.并发用户数
2.总请求数
3.请求资源描述
- 并发用户数,最大并发用户数,最大并发连接数
如果请求花费的时间比较少,可以最大并发用户数>最大并发连接数
如果请求花费的时间比较多,最大并发用户数<最大并发连接数
apache的mod_status提供最大并发用户数
- 请求等待时间
用户请求平均等待时间
服务器请求处理平均时间
- 硬件环境
商城柜台的故事,业务员头脑比较灵活的
- 压力测试
压力测试工具软件,runerloader,jmeter,apche ab
例如:apache ab 测试服务器请求平均处理时间,不包括网络传输时间,用户pc计算时间
ab -n1000 -c10 url
3.2 CPU并发计算
CPU之所以能够处理多个请求,归功于操作系统多执行流体系设计,多个任务可以轮流分配系统资源,系统资源包括cpu,内存,IO.
进程
多流行体实现主要是进程。
线程
进程调度器
虽然用户在单cpu可以运行多个任务,但是只有一个进程在运行,选择哪个进程运行,那要看优先级,优先级有进程本身决定,也可以是
也可以动态调整他们的优先级,PR时间片长度,时钟个数,每个时钟多长时间,
系统负载
cat /proc/loadavg
IOWait
锁
单核和多核
3.3 系统调用