高性能基础知识

来源:互联网 发布:linux wget https 404 编辑:程序博客网 时间:2024/05/01 01:20

一、高性能

• 资源的充分利用率,剥削阶级的思想

• 合理选择开发语言、类库、操作系统
• 程序的组织结构,分层、隔离、局部可置换可优化

• 开发总结,提炼出最佳实践

二、如何评估高性能

• 并发concurrency:CPU划分时间片,轮流执行每个请求任务,时间片到期后,换到下一个。
• 并行parallelism:在多核服务器上,每个CPU内核执行一个任务,是真正的并行。
• 吞吐量throughput:单位时间内服务器总的请求处理量。

–以 request/second 来衡量,如1200rps
–每个请求的处理时间latency
–服务器处理请求的并发workers
–其他因素如GC也会影响吞吐量
•举例:
–平均每个请求的latency – 200ms
–总共40个workers
–理论吞吐量上限 1000/200*40 = 200rps
–理论每日处理动态请求上限1700万,目前实际每日处理动态请求270-330万,预估实际处理上限600万

三、IO常见类型
•磁盘文件操作,例如读硬盘文件
•操作系统调用,例如shell命令
•网络操作
–访问数据库 MySQL, MongoDB, ...
–访问其他Web服务,发起网络连接
–访问缓存服务器 Memcached, Redis
IO操作的延时远远高于CPU时钟周期和内存访问。

四、并行和并发对吞吐量影响
•纯CPU密集型的应用
–在单核上并发执行多个请求,不能提高吞吐量
•由于任务来回场景切换的开销,吞吐量反而会下降
–只有多核并行运算,才能有效提高吞吐量
•IO密集型的应用
–由于请求过程中,很多时间都是外部IO操作,CPU在wait状态,所以并发执行可以有效提高系统吞吐量
–一般影响吞吐量的主要是IO密集,典型的案例是Linux的Load指标,吞吐量的提高主要是降低CPU的等待情况


0 0
原创粉丝点击