Изменения

RootConf 2009: Отчёт Виталия Филиппова

17 байтов убрано, 12:08, 30 октября 2013
м
Нет описания правки
«Первый докладчик у нас — Игорь Сысоев, все вы вероятно знаете [http://sysoev.ru/nginx/ nginx], вот, это человек, который его написал в качестве хобби». Доклад про то, как оптимизировать FreeBSD-сервер для, фактически, отдачи статики. Ну или динамики, но такой динамики, что в процессор никто не упирается, а узкое место — только сеть. Доклад хороший, много раз повторённый много где (имеет долгую выдержку :)), в данном случае адаптированный к FreeBSD 7. В процессе заодно немножко рассказал про устройство сети во FreeBSD.
Тюнинг — в двух словах это ;sysctl’и: * tcbhashsize (только в конфиг бутлоадера),;* maxsockets: помним что 1 сокет = 1800 байт ядра, ;* somaxconn: netstat -Lan — посмотреть, ;* maxfiles: каждый дескриптор = 128 байт ядра, ;* openfiles:,;* nmbcluster: мембуф кластеры по 2 Кб ядра, ;* recvspace: буфер отправки, ;* recvbuf_auto:, ;* maxfilesperproc:, ;* nmbjumbop: по 4Кб, ;* sendspace:, ;* sendbuf_auto:, ;* sendbuf_inc:, ;* sendbuf_max:, ;* maxtcptw: должно быть < maxsockets.
Ещё <tt>vm.kmem_size</tt> (объём памяти ядра, здесь у 7-ки как раз преимущество — до 5Гб вместо до 1.5Гб), maxvnodes.
Современный сайт — это обычно набор запчастей <''поддерживаю мнение всеми руками и ногами, на PHP всегда так и есть''>.
Здесь сайт, здесь один писал, здесь другой, здесь третий, а здесь WordPress, а здесь форум…
Всё это ещё как-то живо засчёт за счёт «security by obscurity» — у нас всё безопасно, так как мы даже сами не знаем, где у нас чего, а не то что взломщики.
Основные дыры, как всегда — это ''Cross-site scripting'' (XSS), ''SQL injection'', ''PHP including'', кража сессий из /tmp, внедрение чего-нибудь куда-нибудь в php-скрипт. Чувак рассказал про то, что у них сначала была мысль — блин, ну давайте хорошо учить веб-разработчиков — ошибки тупые, неужели нельзя натренировать людей, чтобы их не делали? И через 4-5 лет поняли, что нельзя, хотя текучки персонала почти нет — те же самые ошибки совершают те же самые кодеры, что и 5 лет назад.
[http://www.linuxvirtualserver.org/ Linux IPVS]. Via NAT (шлюз) / via Direct Routing (у всех виртуальный IP кластера) / via IP tunneling (географическое распределение серверов). Полезно использовать firewall marks, например для группы протоколов HTTP+HTTPS.
[[enpediawikipedia:VRRP]] и [[enpediawikipedia:Common Address Redundancy Protocol]]. Первое — Сиськовская (Cisco) реализация протокола высокой доступности роутера. Второе — его свободный аналог, есть во фре, да и в linux тоже, но не только для роутеров. Смысл — один горячий, принимает запросы, второй холодный — heartbeat’ит горячий (- ты тут? — я тут — ты тут? — я тут… — ты тут? — … - ааа! сдох! поднимаюсь!). Название CARP наводит на то, что он как-то связан с ARP, и это верно — пока горячий жив, холодный на ARP-запросы «who-has <ip>» не отвечает, так как отвечает именно горячий, а как только горячий падает, на точно такие же ARP-запросы начинает отвечать холодный, и становится горячим. CARP — штука хорошая, говорю это по личному опыту — работал с ним на [http://www.vsem.ru/ vsem.ru]. Фаерволы (внешние сервера) у нас именно так и держали там общий IP, и фэйловер прекрасно работал. Собственно на CARP + pfsyncd можно сделать и балансировку нагрузки, правда, только round-robin (простую циклическую).
Дальше — это проекты Keepalive (VRRP, C, нет гуя, нет IPv6), HA-Linux (есть гуй на питоне), Pirahna (творение редхат, есть веб-гуй, CentOS).
</html>
[[Категория:Конференции]][[Категория:RootConf_2009Отчёты о конференциях]]