Search
Write a publication
Pull to refresh
5
5
Владислав Щапов @phprus

Манул

Send message

Тюнинг сетевого стека Linux для ленивых

Reading time5 min
Views95K

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

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

Головная боль от использования математического софта

Reading time13 min
Views19K

Picture 2


Так получилось, что в один период времени я обсуждал в интернете, казалось бы, разные темы: бесплатные альтернативы Matlab для университетов и студентов, и поиск ошибок в алгоритмах с помощью статического анализа кода. Все эти обсуждения объединило ужасное качество кода современных программ. В частности, качество софта для математиков и учёных. Тут же возникает вопрос о доверии к расчётам и исследованиям, проведённым с помощью таких программ. Попробуем поразмыслить на эту тему и поискать ошибки.
Читать дальше →

Чипы Intel Skylake и Kaby Lake — обнаружена проблема при активном Hyper-Threading

Reading time2 min
Views17K
В мае — апреле этого года Intel обновляла документацию на свои процессоры. Стало известно почему — появилось описание новой ошибки. Согласно документу, опубликованному Debian, чипы с микроархитектурой Skylake и Kaby Lake, а также серверные процессоры Xeon v5 и v6 и некоторые процессоры Pentium могут вести себя непредсказуемо при активном Hyper-Threading.

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

Оптимизация расходов на AWS в SaaS-бизнесе

Reading time5 min
Views7.3K

Расходы Cronitor на AWS за последние 12 месяцев

В первые 30 дней после перевода Cronitor на AWS в январе 2015 года мы собрали платежей на $535 и заплатили $64,47 за хостинг, передачу данных и доменное имя. С тех пор мы наращивали потребление услуг, апгрейдили инстансы, добавляли сервисы. Несмотря на репутацию AWS как дорогого пистолета, чтобы выстрелить себе в ногу, наши счета сохранялись на уровне 12,5% от дохода. Смотрите сами.
Читать дальше →

Всё, что вам нужно знать про Windows Server 2016

Reading time2 min
Views57K
Всем, привет! У нас накопилось много русскоязычных материалов о Windows Server 2016, которыми хотелось бы с вами поделиться. К тому же, в начале месяца вышла русскоязычная версия книги «Введение в Windows Server 2016». Об этом, а также о других интересных статьях и видео по серверной тематике вы узнаете ниже.


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

Внимание, Хабрахабр: IBM открывает бесплатный доступ к большому количеству своих ресурсов

Reading time2 min
Views25K


Компания IBM уже много лет публикует материалы о своих разработках на Хабрахабре. Мы рады, что многие статьи интересны читателям. Тем не менее, мы также не раз видели желание наших читателей начать работу с сервисами и ресурсами IBM на бесплатной основе. И сегодня мы рады сообщить о том, что теперь многие пользователи смогут получить бесплатный доступ к большинству ресурсов Академического хаба, IBM Bluemix, когнитивным технологиям IBM Watson и Интернета вещей.

Такая возможность предоставляется преподавателям и студентам вузов, а также научным сотрудникам академических институтов. Мы знаем, что ученые делают мир лучше, поэтому многие пользователи Хабрахабра теперь могут работать вместе с нами над достижением этой достойной цели.
Читать дальше →

Современный CMake: 10 советов по улучшению скриптов сборки

Reading time8 min
Views87K

CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.

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

Как пропатчить K̶D̶E̶ TCP-стек под FreeBSD

Reading time10 min
Views14K
Когда стоит вопрос выбора между проприетарным и открытым программным обеспечением, часто в пользу последнего приводят следующий аргумент: при необходимости можно изменить исходники под нужды своего проекта, или исправить ошибку прямо сейчас, а не дожидаясь месяцами реакции вендора. Зачастую это соображение является оторванным от практики — куда проще исправить SQL запрос, чем оптимизировать SQL-планировщик, или поменять проблемное оборудование вместо того, чтобы искать и исправлять ошибку в драйвере. Тем не менее, иногда именно открытость кода позволяет избежать потенциальных убытков и перерасхода вычислительных ресурсов. Хочу рассказать об одном из таких кейсов, случившемся за время моей работы в Advanced Hosting
Читать дальше →

Новые «плюшки» компилятора – безопасней, быстрее, совершеннее

Reading time7 min
Views9K

Как говорилось во всеми нами любимом фильме: «Налетай, торопись, покупай живопись». Последняя, конечно, тут ни при чем, а вот «налетать» на новую Бета версию компилятора уже пора. Сегодня я расскажу о том, что нового появилось в пакете Intel Parallel Studio XE 2018 Beta, и в частности, в компиляторной её составляющей. А там действительно много что добавилось, ведь стандарты не стоят на месте — C++14, C++17, Fortran 2008, 2015, OpenMP 4.5 и 5.0, а компилятор должен не только их поддерживать, но и генерировать совершенный, производительный и безопасный код. Кроме этого, новые наборы инструкций AVX512, позволяющие «снимать сливки» с последних процессоров Skylake и KNL, всё больше входят в арсенал современных компиляторов. Но а самое вкусное — новые ключи, которые позволяют получить ещё больше производительности «не напрягаясь». Итак, поехали!
Читать дальше →

ENTRYPOINT vs CMD: назад к основам

Reading time6 min
Views320K

Construction


Название ENTRYPOINT всегда меня смущало. Это название подразумевает, что каждый контейнер должен иметь определенную инструкцию ENTRYPOINT. Но после прочтения официальной документации я понял, что это не соответствует действительности.

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

Эксперименты с malloc и нейронными сетями

Reading time7 min
Views26K


Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc() и free(). Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc(). Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.


Внутри:


  • Совершенствуем libtracemalloc, перехватчик malloc().
  • Строим LSTM на Keras — глубокую рекуррентную сеть.
  • Обучаем модель на примере работы реального приложения (vcmi/vcmi — а вы думали, причем здесь Heroes III?).
  • Удивляемся неожиданно хорошим результатам.
  • Фантазируем про практическое применение технологии.
  • Исходники.

Интересно? Добро пожаловать под кат.


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

Вы неверно измеряете загрузку процессора

Reading time6 min
Views67K
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.

Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:



А на самом деле это выглядит вот так:



«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Читать дальше →

Услуги сервиса Firebase подорожали в 70 раз, а нас никто не предупредил

Reading time8 min
Views26K
На своем блоге в Meidum команда стартаперов HomeAutomation рассказала поучительную историю с относительно счастливым концом о том, как безобидный сервис вроде Firebase может превратиться в западню и как недальновидное планирование на ранних этапах обернулось для компании катастрофой спустя несколько лет.



Начало


«Как и многие другие, наш стартап начался с очень простой идеи. Фактически это был инструмент, созданный, чтобы помочь программистам систем автоматизации для «умного дома» разбираться с возникающими проблемами, интегрировать девайсы и экономить время.

Мы распространяли свой продукт бесплатно, и вскоре он начал завоевывать популярность. Это было так захватывающе! За какие-то несколько месяцев наша аудитория из десяти бета-тестеров в скайп-конференции выросла до сотен, а потом и тысяч пользователей. Мы были на седьмом небе! Помню, как просто сидел и смотрел на статистику Google и Woopra, наблюдая за действиями пользователей.

Я первый готов признать, что на этом этапе мы допустили несколько серьезных ошибок (от которых, надеюсь, сможем предостеречь других). Тогда мы активно создавали и внедряли дополнительные функции, изо всех сил стараясь обрабатывать нескончаемый поток запросов.

Ошибка заключалась не в том, что мы не ознакомились с документацией. И не в том, что выбрали сервисы, у которых какие-то проблемы с функционалом или плохие показатели. Нет, мы допустили мелкую, но опасную оплошность (и я подозреваю, что многие другие разработчики приложений допускают ее в этот самый момент) — мы позволили сервису превратиться в ловушку.
Читать дальше →

Форум центров сертификации и разработчиков браузеров утвердил обязательность DNS CAA

Reading time3 min
Views4.8K
Об актуальной теме утвержденных недавно как обязательные дополнительных средств усиления валидности сертификатов безопасности (SSL/TSL) рассказывают специалисты Qualis, облачного провайдера, оказывающего широкий спектр услуг в области интернет-безопасности.

CAA (Certification Authority Authorization – авторизация центров сертификации), определенная в RFC 6844 в 2013 г., была предложена, чтобы усилить экосистему PKI (Public Key Infrastructure) при помощи нового средства контроля за тем, какой именно центр сертификации может выдавать сертификат данному конкретному домену.

Несмотря на то, что САА введена уже более 4 лет назад, она все еще мало известна сегодня, и на данный момент только 100 или, может быть, около 200 сайтов ее используют. Однако предстоят значительные перемены, потому что форум центров сертификации и разработчиков браузеров (форум CA/Browser) утвердил CAA в качестве обязательной – в рамках стандартного набора базовых условий для выпуска сертификата безопасности. Новая норма начнет действовать с сентября 2017 года.
Читать дальше →

Баг в NTFS, или как подвесить всю систему

Reading time5 min
Views83K
Не так давно при разработке фильтра файловых систем возникла проблема, которая приводила к подвисанию всей системы. Казалось бы, фильтр выполнял очень простые действия и сам был очень примитивным. Чтобы выяснить причину, пришлось спуститься до отладки и реверс-инжиниринга драйвера NTFS. Анализ выявил очень интересный эффект. Если скомпилировать и выполнить очень простую программу, изображенную на рисунке ниже, то доступ к соответствующему тому подвиснет.


Т.е. в данном примере, если попытаться открыть любой файл относительно файла $mft, доступ ко всему тому «С» повиснет, а так как этот том является системным, подвиснет и вся система. При этом не нужно иметь каких-либо прав. Если же том был не системным, то повиснет только доступ к этому тому, но если выполнить перезагрузку, то система повиснет на ней.
Читать дальше →

Большие данные для большой науки. Лекция в Яндексе

Reading time12 min
Views12K
Автор этого доклада уже 12 лет является сотрудником Большого адронного коллайдера (БАК), а в прошлом году начал параллельно работать в Яндексе. В своей лекции Фёдор рассказывает об общих принципах работы БАК, целях исследований, объёмах данных и о том, как эти данные обрабатываются.


Под катом — расшифровка и основная часть слайдов.

Как закалялась GPL

Reading time8 min
Views9.4K

С тех самых пор, как появились лицензии открытого кода, появился соблазн проверить их на прочность. GNU Public License самая бескомпромиссная среди них, она защищает свободу пользователя и программиста от присвоения результатов чужого труда, подмены открытого и общедоступного продукта, закрытым и платным. Не удивительно, что именно GPL чаще всего нарушают малые, средние и даже крупные компании.





Принуждение к соблюдению условий GPL является вопросом стратегической важности для открытого сообщества и легко понять почему это так. GPL является краеугольным камнем, точкой сбора сообщества и его самых принципиальных сторонников. Из них самый известный — основатель GNU и автор GPL — Ричард Столлман. Давайте узнаем как сообщество борется с нарушителями лицензии, кто нарушал и продолжает нарушать GPL и как экспроприируют экспроприаторов открытого кода.

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

Стандарты и шаблоны для ТЗ на разработку ПО

Reading time7 min
Views845K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →

Всё, что вы не знали о CAP теореме

Reading time7 min
Views163K
Во время моего первого опыта работы с распределенными системами я постоянно сталкивался с некой CAP-теоремой, пришлось изрядно покопать, чтобы изучить и осознать её со всех сторон. Я не являюсь мастером баз данных, но надеюсь, что мое маленькое исследование мира распределённых систем будет полезно для обычных разработчиков. В статье я расскажу о том, что такое CAP, его проблемы и альтернативы, а также рассмотрим некоторые популярные системы баз данных через CAP призму.
Читать дальше →

Подробнее об одном новшестве в свежей версии SObjectizer

Reading time10 min
Views2.7K

Когда мы начали рассказывать про свой OpenSource акторный фреймворк для C++ на Хабре, мы пообещали описывать некоторые особенности деталей реализации SObjectizer-а. Одна из новых фич, которая была реализована в недавно вышедшей версии 5.5.19, отлично подходит для такого рассказа. Кроме того, она интересна еще и тем, что нам пришлось взглянуть на сценарии использования SObjectizer с совершенно другой стороны. Можно даже сказать, что один из наших шаблонов оказался разорванным.


Речь идет о возможности SObjectizer-а выполнять все свои действия на одной единственной рабочей нити. Начиная с версии 5.5.19 использовать Actor- и Publish/Subscribe модели можно даже в однопоточном приложении. Понятное дело, что акторы должны будут работать в режиме кооперативной многозадачности, но в каких-то случаях именно это и требуется.


А где может потребоваться использовать акторов в однопоточном приложении?

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

Information

Rating
378-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity