调度器优劣对比

HaProxy代理服务器

调度器对比:

Nginx

优点

  • 1.9版本开始支持四层代理。
  • 正则表达式比HaProxy强大,开源LVS不支持正则。
  • 使用亲和性强,(可排错性强)通过日志可以解决多数问题。
  • 并发量可以达到几万次。

缺点

  • 七层代理仅支持http、https、mail协议,应用面小。
  • 健康检查仅通过端口状态,无法使用url来进行健康检查。

LVS

优点

  • 工作在TCP/IP协议四层,转发包不对包进行拆包和封装,硬件资源消耗低。
  • 配置性低,没有太多可配置性,配置也更简单。
  • 工作在TCP/IP四层,几乎可以为所有应用提供负载均衡。

缺点

  • 不支持正则表达式,不能实现动静分离。
  • 如果服务架构庞大,LVS-DR模式配置比较繁琐。

HaProxy

优点

  • 支持session、cookie功能。
  • 可以通过url进行健康检查。
  • 效率、负载均衡速度,高于Nginx,低于LVS。
  • HAProxy 支持TCP,可以对MySQL进行负载均衡。
  • 调度算法丰富。

缺点

  • 正则弱于Nginx
  • 日志依赖于syslogd

性能方面: LVS > Haproxy > Nginx

功能:Nginx > Haproxy > LVS

正则:Nginx > Haproxy

小型架构调度选Nginx (万级)
中型架构调度选HaProxy (十万)
大型架构调度选LVS (百万级)

原文地址:https://www.cnblogs.com/lqinghua/p/11657906.html

时间: 2024-08-02 14:28:24

调度器优劣对比的相关文章

朴素的UNIX之-调度器前传

Linux目前的进程调度算法是CFS算法,替换了之前的时间片轮转调度算法,CFS算法平滑了动态优先级的计算过程,使整个系统在任何时间都可以被任何 执行实体抢占,事实上这是分时系统的基本原则,试想,如何每一个进程/线程都像中断那样,依靠自己的优先级随时执行,那整个系统才真的成了"公平的"利他 系统.要想理解这种利他行为的本质,如果我们去研究CFS调度算法的各种统计数据,或者去研究其代码,那么其效果肯定是不好的,如果我们去研究 Windows NT内核的调度算法,无疑也会浪费大量的时间和精

Hadoop YARN 调度器(scheduler) —— 资源调度策略

本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了一些博客,发现写得最清楚的还是<Hadoop权威指南>,以下内容主要来自<Hadoop The Definitive Guide> 4th Edition 2015.3. Hadoop YARN Scheduler 三个调度器 YARN提供了CapacityScheduler, Fai

Yarn 调度器Scheduler详解

理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资源的就是Scheduler.其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景.为此,Yarn提供了多种调度器和可配置的策略供我们选择. 一.调度器的选择 在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairS ched

Chromium网页渲染调度器(Scheduler)实现分析

在采用线程化渲染方式渲染网页时,Chromium依赖一个调度器协调Main线程和Compositor线程的执行,同时也通过这个调度器决定它们什么时候该执行什么操作.调度器将Main线程和Compositor线程的当前状态记录在一个状态机中,然后通过这个状态机决定下一个要执行的操作.这个操作在满足当前设置条件下是最优的,因此可以使网页渲染更快更流畅.本文接下来就分析Chromium网页调度器的实现. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 调度器实现

工作流调度器azkaban

为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行 例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示: 1. 通过Hadoop先将原始数据同步到HDFS上: 2. 借助MapReduce计算框架对原始数据进行转换,生成的数据以分

CFS调度器

一.前言 随着内核版本的演进,其源代码的膨胀速度也在递增,这让Linux的学习曲线变得越来越陡峭了.这对初识内核的同学而言当然不是什么好事情,满腔热情很容易被当头浇灭.我有一个循序渐进的方法,那就是先不要看最新的内核,首先找到一个古老版本的内核(一般都会比较简单),将其吃透,然后一点点的迭代,理解每个版本变更背后的缘由和目的,最终推进到最新内核版本. 本文就是从2.4时代的任务调度器开始,详细描述其实现并慢慢向前递进.当然,为了更好的理解Linux调度器设计和实现,我们在第二章给出了一些通用的概

Linux调度器 - deadline调度器

一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求,会做出相应的动作以响应该请求,想要保证正确地响应该请求,一方面逻辑结果要正确,更重要的是需要在最后期限(deadline)内作出响应.如果系统未能在最后期限内进行响应,那么该系统就会产生错误或者缺陷.在多任务操作系统中(如Linux),实时调度器(realtime scheduler)负责协调实时

工作流调度器azkaban概述

一.概述 1. 为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等; 各任务单元之间存在时间先后及前后依赖关系; 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行: 例如: 我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示: 1.通过Hadoop先将原始数据同步到HDFS上: 2.借助MapReduce计算框架对原始数据进行

# IT明星不是梦 #图解kubernetes调度器SchedulingQueue核心源码实现

chedulingQueue是kubernetes scheduler中负责进行等待调度pod存储的对,Scheduler通过SchedulingQueue来获取当前系统中等待调度的Pod,本文主要讨论SchedulingQueue的设计与实现的各种实现, 了解探究其内部实现与底层源码,本系列代码基于kubernets1.1.6分析而来 SchedulingQueue设计 队列与优先级 队列与场景 类型 描述 通常实现 队列 普通队列是一个FIFO的数据结构,根据元素入队的次序依次出队 数组或者