`
冰糖葫芦
  • 浏览: 297827 次
社区版块
存档分类
最新评论
文章列表
这几天我对Nginx和HAProxy做了比较,得出了令人吃惊的结果。 首先,介绍一些背景情况。在很长的一段时间里,我们在Bengler把Nginx作为我们项目的主要web服务器,就像在Mongrel下代理Rails运行一样。Nginx是一个非常好的小开源软件,它占用空间小、有合理的配置语言、功能先进而且速度快。然而,我们却很快发现nginx中代理的负载均衡特性却不尽如人意。 这其中最核心的问题是代理负载均衡算法。Nginx仅仅自带轮循和源ip哈希两种负载均衡器;而只有前者是我们感兴趣的,因为我们的对象是将负载均匀地分散到一群Mongrel后端服务器上。轮循负载均衡(round-robin) ...
  当整个世界都慢慢倾向于nginx的时候,如果你还在使用apache,那么你可能会用尽一切办法来保证速度。你也许会调整要加载的模块,使用Keepalive、摆弄内容协商模块(mod_negotiation,译注:从几个文档中选择一个最匹配客户端要求的文档)、FollowSymLinks指令(译注:允许在此目录中使用软链接)以及重写功能;你甚至可能还会投入更多硬件,并假装自己没有。然而,如果你运营的网站非常繁忙而不想因为内存的原因而导致网站崩溃,那么你就应该关注你所使用的MPM。 MPM,也叫多道处理模块(Multi Processing Module),关系到真个HTTP ...
  负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法: 轮循(Round Robin) 这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。这可能导致能力较弱的服务器超载。   加权 ...
负载均衡是一个针对许多节点的分布式负载。在网络行业,它通常作为一个web前端而被用来平衡各个服务器的http流量。为了这篇文章,我们关注Zenus负载均衡器在http和https流量上的负载均衡。 负载均衡器允许用户智能的分发流 ...
SQL注入是网站和web应用程序中最常见的安全漏洞。这种恶意技术有很多应用场景, 但(SQL注入)通常是指在数据输入的地方注入代码以利用数据库应用程序中的安全漏洞。 SQL注入在接收用户输入的接口处 (也就是说在注册表单、查询表单等地方)尝试执行注入操作。对(SQL注入)高度关注以及方便检测数据库应用程序中的安全漏洞使得攻击者经常地以最小的努力“测试”网站/应用程序的安全完整性。 危害 成功执行的SQL注入有可能严重危害数据库中存储的数据。这种攻击的意图可能包括(但不限于)任何以下方式: ● 数据提取 ● 添加或修改数据 ● 瘫痪服务 ● 绕过身份验证 ● 执行远程命令 ● ...
这个话题可能看起来很枯燥,但它对mysql的性能优化非常重要。事实上我在MYSQL 咨询工作中无时无刻接不在接触这类问题。 IO工作负载与cpu依赖完全不同,尤其是当你的工作集(通常只有数据库的一小部分)载入内存的时候。当数据在内存中时读取是非常快的,如果不在内存中,则非常缓慢。例如,当你查询分析10000行数据时,如果这10000行全部加载在内存中,则只需要很短时间;但是如果到磁盘上去读的话,我们假设只有10%也就是只需要1000次随机读操作的情况下,这个查询也要花费至少5到10秒,或者在已经超负荷的情况下可能花费更多的时间。 所以在设计应用的时候就应当考虑你的应用属于哪种类型?是否能让 ...
网络协议的性能 现在轮到我们实际上可以控制的东西了。 网络处理的性能与延迟时间的增加是不成比例的。这是由于大多数网络协议的内在操作是双向信息交换。本章的其余部分则侧重于理解为什么会产生这些信息交换以及如何减少甚至消除它们交换的频率。   图3:网络协议   传输控制协议 传输控制协议(TCP)是一种面向连接、基于ip的传输协议。TCP影响下的无差错双工通信信道对其他协议如HTTP或TLS来说都必不可少。
简介 在过去的几年里我们在移动蜂窝网络性能方面取得了重大进展。但是由于网络延迟的膨胀导致许多应用并没有得到改善。 延迟问题长期以来一直制约着移动网络。尽管近年来已取得一些进展,但减少网络延迟没有跟上延迟 ...
  传统分布式模型 通 常,内容分发网络(CDN)采用分布式模型。在这种模型里, 用户的文件存放在一个源服务器上,并且由大量边缘服务器负责分发这些文件。这些边缘服务器的磁盘空间比较小,所以大多数的文件被放在内存中。因此,当一个 文件传输至终端用户之前,如果该文件在边缘的CDN缓存服务器上不存在,那么这些服务器会先去原始服务器请求该文件或流。 这种分布式模型起 源于20世纪末,也就是在那时全球第一个CDN开始出现。当时在2000年的时候,CDN的主要挑战是从互联网服务提供商(ISP)的内部站点 (POPs)去传输网页内容。每一个接入POP的终端用户都会快速获得响应内容,而不是CD ...
从服务质量角度来看,如果不考虑其他因素,那么家庭网络服务很大程度上取决于带宽。虽然带宽对于web内容用户来说非常重要,但是它并不是仅有的重要指标。众所周知,市面上所卖的高带宽连接并不是真正意义上的传输速 ...
内容传输网络或内容分发网络(CDN)是一个包含数据副本的缓存系统,存在于网络中不同的节点以便可以最大化的利用网络来传输数据至客户端。一个客户端访问离它最近节点的数据副本,而不是所有的客户端访问相同的中心服 ...
  还有另一个问题就是所有的内容都放在同一个地方。如果我们的服务器在芝加哥,那么美国中西部的人们访问服务器的响应时间和用户体验就比香港、德国、南非以及佛罗里达州的用户好。因为那些用户离服务器的物理距离更远,根据物理定律来看,这些用户获取内容显然需要更长时间。这加大了请求的数量,而且其中大部分请求为静态内容或者是占用大量带宽的文件的请求。 单个字节的数据以服务器为原点传输到终端用户所花的时间被称为“往返时间”(round trip time)或者称作延迟(以毫秒为单位)。如果我们先要更快的传输网页内容,那么我们最想要的事情也就是尽可能低的延迟。也许,毫秒听起来并不是什么大问 ...
                                    CDN是一个致力于使内容传输更快、更高效的针对web服务器的全局分布式网络。通过CDN来复制使这些内容可以在很多地方同时存在。 比较有名的CDN厂商有AKamari,Amazon Cloud ...
当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展。选用哪种策略主要依赖于要解决的问题 以及系统资源的限制。在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点。如果你已经有一 ...
当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展。选用哪种策略主要依赖于要解决的问题以及系统资源的限制。在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点。如果你已经有一个软件系统需要不断成长,那么你将有意或者无意中选择这两种策略中的一种。 垂直扩展 在垂直扩展模型中,想要增加系统负荷就意味着要在系统现有的部件上下工夫,即通过提高系统部件的能力来实现。例如,假设你现在负责一批木材采伐的操作。 在这个例子中,我们假设有3辆卡车,每辆车一次可以运25根木材,计算花费1小时的情况下可以运送到指定地点等待处理的木材数量。通过这些数字我们可以算出我们系统最大的负荷 ...
Global site tag (gtag.js) - Google Analytics