服务器并发处理能力之《构建高性能WEB站点》读书笔记

本文对比分析了Apache、Nginx和Lighttpd三种Web服务器的优劣,深入探讨了服务器并发处理能力的关键指标,如吞吐率、进程与轻量级进程的区别,以及进程调度器的工作原理,为提升服务器性能提供了实用的指导。

本篇主要总结一些与服务器并发处理能力相关的指标名词及一些相应的linux指令含义。

说之前粘一下百度来的信息(捂脸)

3种WEB服务器的比较:

 在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。
建议方案:

Apache 后台服务器(主要处理php及一些功能请求 如:中文url)
Nginx  前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)
Lighttpd 图片服务器
总体来说,随着nginx功能得完善将使他成为今后web server得主流。好,收!

  • 吞吐率

单位时间内服务器处理的请求数,用来描述Web服务器并发处理能力,单位:reqs/s。实际中,我们更关心服务器并发处理能力的上限,也就是单位时间内服务器能够处理的最大请求数,即最大吞吐率。通常我们会使用“压力测试”的方法,模拟足够数目的并发用户数,分别持续发送一定的HTTP请求,并统计测试持续的总时间。压测前提包括以下几个条件:1)并发用户数 2)总请求数 3)请求资源描述。

  • 进程和轻量级进程

从本质上讲,多进程的好处并不仅仅在于CPU时间的轮流使用,还在于CPU计算和I/O操作进行了很好的重叠使用,这里的I/O主要指磁盘I/O和网络I/O,它们的速速要比CPU就像是老牛漫步相较于超音速飞机。现代计算机的DMA技术让CPU不参与I/O操作的全过程,比如进程通过系统调用,使得CPU向网卡或磁盘等I/O设备发出指令,然后进程被挂起,释放出CPU资源,等待I/O设备完成工作后通过中断来通知进程重新就绪。进程的调度由内核来进行,每个进程都有自己独立的内存地址空间和生命周期。当子进程被父进程创建后,便将父进程地址空间的所有数据都复制到自己的地址空间,完全继承父进程的所有上下文信息,他们之间可以通信,但是不相互依赖,也无权干涉彼此的地址空间。进程的创建使用fork()系统调用。

轻量级进程:由于进程之间相对独立,各自维护庞大的地址空间和上下文信息,无法很好地低成本共享数据,比如Apache的prefork模型,在处理大量并发请求时,内存的大量消耗有时也会成为性能提升的制约因素。但是,进程的优越性有时也恰恰体现在其相互独立所带来的稳定性和健壮性方面。为此,Linux 2.0之后,提供了对轻量级进程的支持,它由一个新的系统调用clone()来创建,并由内核直接管理,像普通线程一样独立,各自拥有进程描述符,但是这些进程允许共享一些资源,比如地址空间、打开的文件等。轻量级进程减少了内存的开销,并为多进程应用程序的数据共享提供了直接支持,但是其上下文切换的开销还是在所难免。

  • 进程调度器

内核中的进程调度器(Scheduler)维护着各种状态的进程队列。在Linux中,进程调度器维护着一个包括所有可运行进程的队列,成为“运行队列”(Run Quere),以及一个包括所有休眠进程和僵尸进程的列表。

进程调度器的一项重要工作就是决定下一个运行的进程,如果运行队列中有不止一个进程,这就需要进程告诉进程调度器各自的紧急程度, 这就是进程优先级。进程优先级除了可以由进程自己决定,进程调度器在进程运行时也可以动态调整他们的优先级。

  • 一些指标

top命令下,PR表示进程的优先级属性Priority,而优先级动态调整值用NI表示。PR所代表的的值其实就是进程调度器分配给进程的时间长度,单位是时钟数,Linux上一般为10ms,PR值为15则表示这个进程的时间片为150ms;RES指进程占用的物理内存空间大小;Swap值表示使用的虚拟内存空间大小;VIRT值等于物理内存和虚拟内存空间的总和。load average表示系统负载,数据来源于/proc/loadavg,这三个值分别表示系统最近1分钟、5分钟和15分钟计算得出的系统负载;IOWait指CPU空闲并且等待I/O操作完成的时间比例。比如一个任务需要花费10ms I/O操作时间和10ms的CPU时间,那么IOWait为50%;

在操作系统中,时间片的长度是权衡利弊后的一个博弈结果,如果个进程时间片太短,CPU浪费在进程切换上的时间就会比较大,整体效率降低;如果时间片太长,则多任务实时性以及交互性就无法保证。

Linux为每个处理器分配一个运行队列,互不影响,进程调度负责将进程分配到适合的CPU,解决了多处理器的服务器SMP的支持问题。

  • 系统负载

系统负载越高,代表CPU越繁忙,越无法很好的满足所有进程的需要。系统负载定义:单位时间内运行队列中就绪等待的进程数平均值。所以当运行队列中就绪进程不需要等待就可以马上获得CPU时,系统负载便非常低。当系统负载为0.00时,说明任何进程只要就绪,就可以马上获得CPU,不需要等待,此时系统响应速度最快。

 

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 在信息技术领域,特别是软件编程行业,微软公司推出的集成开发环境(IDE)Visual Studio,凭借其卓越的功能和广泛的适用范围,成为了众多程序员的常用工具。不过,在实际操作期间,用户可能会遭遇各种挑战,其中一种较为普遍的挑战是“Visual Studio遭遇了异常情况,这或许与某个附加组件有关”。本文将详细研究这一现象的成因、潜在后果以及最终的应对措施。 ### 原因剖析 Visual Studio通过支持多种插件和附加组件来扩展其功能,这些组件通常由第三方开发者设计,旨在为用户提供更多个性化和专业化的工具。然而,这些插件的质量良莠不齐,部分可能未经过充分的测试或与特定版本的Visual Studio存在兼容性难题,从而在执行时引发异常。异常的出现可能源于以下几个因素: 1. **代码缺陷**:若附加组件中的代码存在逻辑问题或资源管理不当,就可能导致运行时异常。 2. **资源竞争**:多个插件同时占用相同的资源(例如内存、文件句柄等),可能会产生资源冲突,进而触发异常。 3. **依赖不匹配**:插件可能需要特定版本的库或框架,如果系统中安装的版本不一致,也可能导致异常。 4. **安全隐患**:部分插件可能存在安全漏洞,一旦被恶意利用,可能会导致更严重的问题,包括但不限于异常崩溃。 ### 后果分析 当Visual Studio遇到由附加组件引发的异常时,不仅会中断当前的工作进程,降低开发效能,还可能带来以下潜在风险: 1. **数据遗失**:若异常发生在保存操作之前,可能会导致未保存的工作内容遗失。 2. **稳定性减弱**:频繁的异常会导致Visual Stud...
内容概要:本文围绕有源中点箝位(ANPC)三电平并网逆变器,提出并深入研究了一种融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相控制与电网电压前馈控制的高性能一体化并网策略。研究首先系统分析了ANPC三电平逆变器在开关损耗均衡、中点电位稳定、输出谐波含量低等方面的拓扑结构优势,为实现高质量并网奠定了坚实的硬件基础。在此基础上,通过引入DPWMA调制策略,有效提升了等效开关频率,显著优化了输出电压电流的波形质量,降低了谐波畸变。为应对电网电压不平衡、畸变等复杂工况,研究采用了正负序分离锁相技术,实现了对电网正序和负序分量的精确分离与独立控制,从而保障了在非理想电网条件下的精准相位同步。同时,通过叠加电网电压前馈控制,构建了前馈-反馈复合控制体系,提前补偿电网扰动,极大地增强了系统的动态响应速度和抗干扰能力。最终,通过Simulink仿真平台对稳态、电网不平衡及动态扰动等多种工况进行了全面验证,结果表明该复合控制策略能显著提升并网系统的电能质量、稳定性和工况适应性,为新能源发电等大功率并网应用提供了先进的技术解决方案。; 适合人群:具备电力电子、自动控制理论或新能源并网技术等相关专业知识背景,从事相关领域科研或工程开发工作的研究人员,尤其适合高校研究生、青年教师及电力系统仿真与设计工程师。; 使用场景及目标:①应用于对电能质量要求严苛的大功率并网逆变器控制系统设计与优化;②解决电网电压不平衡、谐波畸变等复杂非理想工况下的并网稳定性与同步精度问题;③为ANPC三电平逆变器的先进控制策略开发与性能提升提供详尽的仿真验证方案和技术参考;④支持高水平科研论文的复现、学位论文的课题研究以及重大工程项目前期的技术预研与论证。; 阅读建议:建议读者结合文中详述的系统拓扑、控制架构图及仿真模型,循序渐进地理解各控制模块的设计原理与协同工作机制,重点关注DPWMA调制的实现细节、正负序分离的数学原理与实现方法,以及前馈控制的嵌入方式与参数整定策略,并通过仿真实验与传统控制策略进行对比分析,以深刻掌握该复合控制策略的性能优势与工程应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值