Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

HL — масштабирование web-серверов by Mind Map: HL — масштабирование web-серверов
0.0 stars - reviews range from 0 to 5

HL — масштабирование web-серверов

Ловушки / проблемы

share nothing

примеры: общие данные на NFS: сессии, код

минимум доступа к разделяемым ресурсам

share accuretely, клиент д.б. привязан жёстко к серверу

общий кэш

больше cache hits

Frontend / акселлератор

Почему двухуровневая схема: frontend / backend

принципиально разные задачи у frontend и backend

Разве повар вместо официанта принимает заказ?

backend (приложения), на скриптовых языках, относительно медленно, Много блокирующего IO, Часто создают существенную нагрузку на CPU

Преимущества

Медленные клиенты (spoon feeding)

Большое количество соединений (> 100000)

Раздача статики

Кэширование динамики

Шифрование

Сжатие трафика

Аутентификация

SSI, server-side includes, юзаем на expired.reg.ru

Интеллектуальная обработка / доп. логика, nginx-perl

Примеры

nginx, до 100K+ соединений, малое потребление памяти (250 байт для неактивных keepalive-соединений), удобная конфигурация, умение работать в несколько процессов, большое внимание к скорости и качеству кода

haproxy

lighttpd

кейсы frontend/backend

статика / динамика

nginx + Apache + mod_php, mod_perl, mod_python

nginx + FCGI

nginx + stand-alone http app server

Способы распределения нагрузки

DNS-LB

TTL

IP AnyCast

BGP

IP-LB (Layer-4)

Linux IPVS

FreeBSD CARP

M$ NLB

http-проксирование / reverse proxy (Layer-7)

http-переадресация

(технологии CDN)

можно миксовать различные подходы / выстраивать иерархию LB

Модели обработки сетевых соединений

process per connection

apache mpm_prefork

CGI: fork per connection

упираемся в RAM, CSW и число процессов

thread per connection

apache mpm_worker

упираемся в CSW и число потоков

FSM (finite state machine) / async IO

nginx