压力测试

压力测试条件

1.并发用户数

2.总请求数(也有按照连续请求时间)

3.请求资源描述(一个简单查询,复杂业务操作等)

 

最大并发数:服务器和用户双方的最大收益,服务器需要支持高并发数和及高吞吐率,用户需要较少的时间得到响应。

 

文件描述符:标明每一个被进程所打开的文件和socket数目

ulimit -n //获取
1024

ulimit - n 2048 //设置

 

实际并发数大于文件描述符数

如果是小文件请求 那么很快处理释放描述符 影响不大

否则如果是大文件请求耗时很长 那么用户等待时间就会很长 这个时候应该设置服务的最大并发数小于理论上的最大连接数。

 

用户平均请求等待时间:衡量服务器在一定的并发用户数的情况下 对于单个用户的服务质量。

服务器平均请求处理时间:衡量服务器的整体服务质量  是吞吐率的倒数。

 

结论:

随着并发数的增加服务器的资源不断充分利用,吞吐率不断提高,当超过一定值  吞吐率开始走下坡路。

 

单个请求处理时间先降低 后一直增加。

 

请求等待时间 一直增加。。。。

 

 cpu 多执行流好处:

1.时间的轮转 加速响应

2.cpu计算和io(速度慢)操作重叠

 

进程优先级:

通过 top 查看PR列

表示的时钟个数 linux上一个时钟10ms  pr为15表示时间片为150ms

 

 

系统负载:

s-colin:/ #  cat /proc/loadavg

1.63 0.48 0.21 10/200 17145

10/200表示运行队列中有10个进程  进程总数为200

17145 最后创建的进程ID

1.63 0.48 0.21 1分钟 5分钟 15分钟的计算出来的系统负载

负载计算方法:单位时间内允许队列中就绪等待的进程数的平均值。 

如果值为0.00 就表示就绪了 就可以执行了 不需要等待。

运行一个死循环 会导致load马上上去  这个时候占用大量时间片  其他的进程就绪还得等待 时间片的切换。

 

进程切换:

每个进程都拥有自己的内存空间,但是都只能共享cpu寄存器

进程挂起的本质:将cpu寄存器数据拿出来暂存到内核态堆栈中,而进程恢复的本质就是将数据重新载入cpu寄存器,这段载入和移出称为硬件上下文

通过linux监视工具 Nmon

当服务器不提供服务:ContextSwitch:28.4

 

IO模型:

等待在:建立连接-》发送请求-》网络传输-》接收缓冲区复制到进程地址空间

 

同步阻塞IO

同步非阻塞IO:立马返回 结合反复轮询来尝试数据是否就绪,防止进程被阻塞,最大的好处便在于可以在一个进程里同时处理多个IO操作。

多路IO就绪通知:

内存映射:内存和磁盘进行管理   操作硬盘和操作内存一样。

 

服务器的并发策略:

 

Linux strace命令

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值