Как стать автором
Поиск
Написать публикацию
Обновить
170.43

Серверное администрирование *

Установка, настройка, обслуживание

Сначала показывать
Период
Уровень сложности

Современная операционная система: что надо знать разработчику

Время на прочтение22 мин
Количество просмотров68K

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →

77 терабайт в месяц на домашнем анлиме

Время на прочтение3 мин
Количество просмотров91K
Житель Калифорнии и счастливый владелец оптоволоконного доступа в интернет по тарифу Verizon FiOS поставил личный рекорд по трафику: 77 терабайт за месяц. Для него это необычно много, ведь в среднем за последние месяцы получается не более 35 терабайт. Хотя FiOS считается тарифом без ограничения трафика (честный анлим), но парень всё-таки удостоился звонка от менеджеров компании Verizon.

«Я никогда не слышал, чтобы такое с кем-нибудь случалось. Но я наверное использовал больше трафика, чем любой абонент FiOS в Калифорнии, так что я не особенно удивлён», — рассказывает пользователь под ником houkouonchi на форуме DSLReports.com. Вот моя статистика по трафику в этом году:

Январь: 35 ТБ
Февраль: 32 ТБ
Март: 77 ТБ
Апрель: 28 ТБ
Май: 19 ТБ (на 21-е число)
Читать дальше →

freenginx: комментарии от Макса Дунина

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров22K

14-го февраля Максим Дунин анонсировал форк nginx - freenginx (freenginx.org). Максим - старейший сотрудник nginx и core-контрибьютор nginx со времен Рамблера. Максим любезно согласился на интервью, вопросы задавал Алексей Рыбак (@rybakalexey), DevHands.io.

[АР] Почему ты решил форкнуть nginx и запустить проект freenginx? Почему ты делаешь акцент на свободе, в чём был несвободен nginx внутри F5?

[МД] Я в течении почти двух лет пытался избежать создания форка и безвозмездно занимался улучшением nginx - потому что считал и считаю, что создание форков не полезно для проекта. К сожалению, в F5 решили отказаться от наших договорённостей, и предпочли делать с проектом то, что они считают нужным, игнорируя как существующие политики проекта, так и мнение разработчиков, в том числе моё. Поэтому я создал отдельный проект, в котором позиция разработчиков гарантировано будет определяющей.

Читать далее

VPS сервер по цене пачки чипсов: обзор самых дешёвых тарифов российских хостеров

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров31K

Привет, Хабр! Однажды я проводил небольшое тестирование виртуалок различных хостер-провайдеров и сравнивал их между собой — оказывается, с тех пор прошло уже аж пять лет. Ну и в том тестировании условия у всех серверов были одинаковые, т. к. тестировались сходные конфигурации.

Сегодня хотел бы рассказать о том, как себя ведут самые дешёвые (в ценовом диапазоне от 100 до 300 рублей) предложения от популярных хостеров. 

Читать далее

Что будет, если переименовать суперпользователя? Экспериментируем, удивляемся и расстраиваемся…

Время на прочтение15 мин
Количество просмотров24K

В интернете много желающих перебирать пароли к SSH, чтобы получить мощности вашего сервера безвозмездно. Как это можно предотвратить? Отключить вход по паролю? Лениво. Использовать нестандартный порт? Не поможет. Поставить fail2ban? Скучно. Переименовать root? Вот это хорошая идея!

На профильных площадках можно встретить вопрос о том, как переименовать суперпользователя, и теоретические ответы с предупреждением о потенциальной деструктивности этого действа. В этой статье я расскажу, что может сломаться в теории и на практике.
Читать дальше →

Et tu, Brute? Что хотят от нас брутфорсеры?

Время на прочтение16 мин
Количество просмотров19K

Каждый владелец сервера с «белым» IP-адресом наблюдал в логах бесчисленные попытки подключиться к серверу по SSH с разных точек мира. Администраторы ставят средства противодействия, такие как fail2ban, переносят SSH на другие порты и всячески пытаются защититься от брутфорсеров. Но чего же хотят эти замечательные люди от наших серверов?

Поверхностный ответ, конечно, прост: наживы на бесплатных вычислительных ресурсах и полученных чувствительных данных. Но этот ответ недостаточно подробный. Давайте разложим виртуальные «приманки» и проследим, что происходит, когда автоматический брутфорс оказывается успешным.
Читать дальше →

Дело всегда в TCP_NODELAY

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров15K

Занимаясь отладкой проблем в легаси-системах, я первым делом проверяю, включён ли режим TCP_NODELAY. И так делаю не только я. Все знакомые мне разработчики распределённых систем потратили немало часов на решение проблем с задержкой, которые быстро исправлялись простым включением этой опции сокета, указывая на ошибочность базовых настроек или использование устаревшей концепции.

Но для начала давайте проясним, о чём вообще речь. Лучше всего нам в этом поможет документ RFC896, изданный Джоном Нейглом в 19841 году. Вот описание задачи:

Обработка малых пакетов сопряжена с одной специфичной проблемой. Когда для передачи односимвольных сообщений с клавиатуры используется TCP, обычно для отправки одного байта полезных данных задействуется пакет размером 41 байт (один байт данных и 40 байт заголовка). Такие издержки в 4 000%, конечно, раздражают, но в слабо нагруженных сетях ещё терпимы.

Если коротко, то Нейгл хотел сократить затраты на отправку TCP-заголовков, чтобы повысить пропускную способность сети — вплоть до 40х! Эти крохотные пакеты поступали из двух основных источников: интерактивных приложений вроде оболочек, где пользователь вводил по одному байту за раз, и плохо реализованных программ, которые передавали сообщения ядру через множество вызовов write(). Предложенное Нейглом исправление оказалось простым и продуманным.
Читать дальше →

GitLab: с выходом версии 12.1 мы прекращаем поддержку MySQL

Время на прочтение2 мин
Количество просмотров48K


Сейчас мы расскажем, почему, начиная с версии 12.1, GitLab перестанет поддерживать MySQL.


В июле 2017 GitLab предупредил, что прекратит поддержку MySQL. Так вот, с выпуском 12.1 период подготовки к этому завершится, и больше мы MySQL поддерживать не будем. Решение непростое, и мы хотели бы поделиться доводами.

Читать дальше →

Критическая уязвимость серверов 1Cloud

Время на прочтение11 мин
Количество просмотров20K
Хотим поделиться своим опытом работы с серверами 1cloud. Мы не хотим никого обвинять, просто хотим выставить проблему на всеобщее обозрение, чтобы у сотрудников 1cloud появилась мотивация для проведения детального анализа данной проблемы.

Началось все с того, что последние месяцы на Windows серверах 1cloud, мы начали замечать аномальную нагрузку, но не придавали этому особого значения, так как Windows сервера в основном использовались для выполнения различных мелких задач типа использование браузера и любых других программ, да и особо не было желания выяснять что там и как.

Но на днях произошла весьма неприятная и оскорбительная ситуация со стороны сотрудников 1cloud, которая подтолкнула нас на публикацию данной статьи. Мы используем сервера 1cloud уже около 1.5-2х лет, правила использования серверов не нарушали. Я был неприятно удивлен, когда зашел в аккаунт и увидел, что все 40 наших серверов заблокированы с пометкой «Сервер заблокирован администратором. Причина блокировки: брутфорс.».
Читать дальше →

sudo rm -rf, или Хроника инцидента с базой данных GitLab.com от 2017/01/31

Время на прочтение15 мин
Количество просмотров68K

Он пьянел медленно, но все-таки опьянел, как-то сразу, скачком; и когда в минуту просветления увидел перед собой разрубленный дубовый стол в совершенно незнакомой комнате, обнаженный меч в своей руке и рукоплещущих безденежных донов вокруг, то подумал было, что пора идти домой. Но было поздно.

Аркадий и Борис Стругацкие

31 января 2017 года произошло важное для мира OpenSource событие: один из админов GitLab.com, пытаясь починить репликацию, перепутал консоли и удалил основную базу PostgreSQL, в результате чего было потеряно большое количество пользовательских данных и сам сервис ушел в офлайн. При этом все 5 различных способов бэкапа/репликации оказались нерабочими. Восстановились же с LVM-снимка, случайно сделанного за 6 часов до удаления базы. It, как говорится, happens. Но надо отдать должное команде проекта: они нашли в себе силы отнестись ко всему с юмором, не потеряли голову и проявили удивительную открытость, написав обо всем в твиттере и выложив в общий доступ, по сути, внутренний документ, в котором команда в реальном времени вела описание разворачивающихся событий.


Во время его чтения буквально ощущаешь себя на месте бедного YP, который в 11 часов вечера после тяжелого трудового дня и безрезультатной борьбы с Постгресом, устало щурясь, вбивает в консоль боевого сервера роковое sudo rm -rf и жмет Enter. Через секунду он понимает, что натворил, отменяет удаление, но уже поздно — базы больше нет...


По причине важности и во многих смыслах поучительности этого случая мы решили целиком перевести на русский язык его журнал-отчет, сделанный сотрудниками GitLab.com в процессе работы над инцидентом. Результат вы можете найти под катом.

Читать дальше →

Почему observability — это не только Grafana и Prometheus

Время на прочтение11 мин
Количество просмотров19K

Вы видите красивые графики в Grafana, алерты настроены, метрики собираются — значит, все под контролем? На самом деле, нет. Когда в продакшене что-то пойдет не так, Prometheus покажет скачок latency, но не объяснит, почему это произошло. Логи могут не содержать нужных данных. Трейсов нет. Итог — часы расследования, хаотичные гипотезы, поиски иголки в стоге сена.

Observability — одно из тех модных слов, которые часто понимают неправильно. Для многих оно сводится к связке Grafana + Prometheus, не более. Однако в реальных системах наблюдаемость (observaбыстроbility) — это больше, чем просто красивые дашборды с метриками. В этой статье разберемся, почему классический стек не покрывает все задачи, какие альтернативы есть на рынке и как построить современный observability-стек.
Читать дальше →

Команда cp: правильное копирование папок с файлами в *nix

Время на прочтение3 мин
Количество просмотров200K


В этой статье будут раскрыты некоторые неочевидные вещи связанные с использованием wildcards при копировании, неоднозначное поведение команды cp при копировании, а также способы позволяющие корректно копировать огромное количество файлов без пропусков и вылетов.

Допустим нам нужно скопировать всё из папки /source в папку /target.
Читать дальше →

Балансировка HTTP(S) трафика

Время на прочтение12 мин
Количество просмотров31K
Добрый день, %username%. Меня зовут Антон Резников, я работаю над проектом Облако Mail.Ru Сегодня я хочу рассказать о технологиях балансировки трафика, проиллюстрировав историей о развитии социальной сети. Все персонажи выдуманы, а совпадения почти случайны. Статья обзорная, составлена по следам доклада на Highload Junior 2017. Некоторые вещи могут показаться элементарными, но опыт проведения собеседований показывает, что это не совсем так. Кое-что будет спорным, не без этого.

Если интересно, добро пожаловать под кат.
Читать дальше →

Ближайшие события

Как перезагрузить сервер?

Время на прочтение6 мин
Количество просмотров135K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →

Постмортем: 4 мои ошибки во время отражения DDOS атаки (спойлер — выкуп в $250 мы все-таки не заплатили)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров21K

Мой обеденный кофе прервался. Начали приходить уведомления от мониторинга, что сайт и API не отвечают, а CloudFlare отдаёт 521-ю ошибку на все запросы. Спустя пять минут ко мне в личку пришли пользователи с жалобами на неработающие приложения. А ещё спустя пять позвонил сооснователь проекта и сказал, что от нас требуют $250 за остановку DDOS'a.

Ниже расскажу, как мы командой решали проблему, какие ошибки допустил я и чем всё закончилось.

Читать далее

Обзор BKHD N100 NAS — Лучшая материнская плата для домашнего NAS

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров38K
Для этого обзора я приобрёл плату BKHD-1264-NAS, которая широко известна в узких кругах строителей NAS и обладателей домашних лаб.

Плата интересна наличием шести SATA портов, четырьмя портами 2.5GbE на чипах Intel i226-V, а также современным и энергоэффективным процессором Intel N100 — и всё это в компактном формате Mini ITX!

Её подробный обзор можно почитать далее в статье.

Читать дальше →

Что для вас Linux? Или как устроен запуск процессов

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров42K

Как бы вы ответили на вопрос, что такое операционная система?

Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebook или Google. С одной стороны, ответить на этот вопрос очень легко и в интернете можно найти много определений, но относится ли, например, конфигурация DNS и файл /etc/resolv.conf к ОС ? Или в какой области памяти работает ОС - в памяти с безграничными возможностями для кода, называемой kernel space, или все же в лимитированной user space?

На эти вопросы даже в этой статье вы не найдете однозначного ответа, и только вам решать, что для вас ОС, а что пользовательские приложения. Но в конце статьи я все же приведу свои аргументы, почему важно знать, как это работает, даже если вы сеньор программист/админ/девопс, проживший без этих знаний 35 лет и весьма успешно запустивший множество проектов. 

Читать далее

YARL: как Яндекс построил распределённый Rate Limiter с нулевым влиянием на время ответа сервисов

Время на прочтение14 мин
Количество просмотров32K

Yandex Rate Limiter (далее просто YARL) — это сервис лимитирования нагрузки для распределённых сервисов. Его особенность в том, что он способен работать с миллионами квот, имея при этом очень низкие накладные расходы на проверку квоты. Если совсем кратко, это система распределённых Leaky Bucket'ов, с помощью которых можно ограничивать разные величины, связанные со временем: скорость передачи данных по сети, запросы в секунду и т. п.



Меня зовут Денис Кореневский, я работаю в службе разработки внутреннего хранилища Яндекса, и сегодня я расскажу, как YARL устроен внутри, почему мы вообще написали своё решение и с какими трудностями нам пришлось столкнуться в процессе создания. Добро пожаловать под кат.

Читать дальше →

1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей

Время на прочтение14 мин
Количество просмотров58K


Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит по всем нашим микросервисам. Класс. Но, допустим, у вас совсем маленький проект и вы можете себе позволить лишь VPS минимальной конфигурации. Реально ли на ней сделать мониторинг не хуже, чем у больших проектов? Я решил – надо попробовать.
Читать дальше →

Оптимизация веб-серверов для повышения пропускной способности и уменьшения задержки

Время на прочтение31 мин
Количество просмотров47K


Привет! Меня зовут Макс Матюхин, я работаю в SRV-команде Badoo. Мы в Badoo не только активно пишем посты в свой блог, но и внимательно читаем блоги наших коллег из других компаний. Недавно ребята из Dropbox опубликовали шикарный пост о различных способах оптимизации серверных приложений: начиная с железа и заканчивая уровнем приложения. Его автор – Алексей Иванов – дал огромное количество советов и ссылок на дополнительные источники информации. К сожалению, у Dropbox нет блога на Хабре, поэтому я решил перевести этот пост для наших читателей.

Читать дальше →

Вклад авторов