crimea-karro


[Главная страница]
[Добавить в избранное]

Страницы: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]

Facebook открыл код для обработки ситуации нехватки памяти в системе

Facebook опубликовал собственную реализацию обработчика нехватки памяти в системе (OOM, Out Of Memory), работающую в пространстве пользователя. Как и представленный в начале месяца проект earlyoom, разработка Facebook нацелена на более оперативное и выборочное завершение работы процессов, потребляющих слишком много памяти, на стадии до срабатывания OOM-обработчика ядра Linux. Код oomd написан на языке C++ и поставляется под лицензией GPLv2. Oomd уже используется в инфраструктуре Facebook и хорошо зарекомендовал себя при промышленных нагрузках (в частности, проект позволил почти полностью избавиться от возникновения на серверах длительных livelock-блокировок).

Проект oomd предоставляет достаточно гибкие настройки, позволяющие определять процессы, которые не следует завершать при любых условиях (например, sshd) или, наоборот, определить второстепенные процессы, которые можно завершить без особого вреда. В привязке к определённым процессам или для всех процессов можно определять параметры интенсивности роста потребления памяти и пороговые значения, при превышении которых в условиях нехватки памяти допускается принудительное завершение работы процессов. Допускается создание различных групп процессов, к которым могут применяться разные правила.

Поддерживается подключение различных модулей для определения нехватки памяти (oomdetector) и завершения процессов (oomkiller). В процессе работы для мониторинга за потреблением ресурсов используются cgroup2 и подсистема PSI (Pressure Stall Information), несколько дней назад предложенная для включения в состав ядра Linux. PSI разработан в Facebook и позволяет проанализировать информацию о времени ожидания получения различных аппаратных ресурсов для определённых задач или наборов процессов в cgroup.

В контексте OOM подсистема PSI позволяет выявить начало возникновения задержек из-за нехватки ресурсов на стадии когда система ещё не находится в критическом состоянии и не начинает интенсивно урезать кэш и вытеснять данные в раздел подкачки. Кроме оценки нагрузки на систему памяти в PSI также учитывается нагрузка на CPU и ввод/вывод. По сути PSI можно рассматривать как более информативный индикатор перегрузки и механизм для отслеживания изменения нагрузки во времени, более точно отражающий реальную ситуацию по сравнению с метрикой LA (Load Average).

Проведённые синтетические тесты показали, что реализация OOM-обработчика в пространстве пользователя продемонстрировала более высокую эффективность и надёжность, по сравнению со штатным OOM killer ядра Linux. Ниже на графиках приведено сравнение oomd и OOM killer при тестировании постепенного запроса процессом 2 Гб ОЗУ в течение 120 секунд в условиях нехватки памяти (значения выше 120 следует рассматривать как поведение, приводящее к снижению производительности).



Источник: http://www.opennet.ru/opennews/art.shtml?num=48994

Началось формирование ASan-сборок Firefox для выявления проблем при работе с памятью

В рамках проекта ASan Nightly разработчики Mozilla начали публикацию ежедневно обновляемых сборок Firefox, собранных с AddressSanitizer для выявления проблем в процессе работы с памятью, в том числе вызванных обращением к областям памяти после их освобождения (use-after-free) и различными вариантами переполнения буферов и стека.

Сборки примечательны включением автоматической отправки уведомлений о выявленных проблемах. Более того, на автоматически создаваемые уведомления распространяется действие программы выплаты вознаграждения за выявление уязвимостей. Т.е. пользователь может просто использовать браузер обычным образом, а в случае возникновения нештатной ситуации при просмотре какого-то сайта, например, краха, будет отправлено уведомление о проблеме, за которое пользователь может получить денежное вознаграждение в случае, если проблема будет признана уязвимостью.

Размер вознаграждения может составить от 500 до 3000 долларов, в зависимости от опасности проблемы. Для участия в программе выплаты вознаграждения пользователь должен идентифицировать себя, указав свой email в поле asanreporter.clientid через интерфейс about:config (если email не будет указан отчёты будут отправляться анонимно, а присуждённое вознаграждение будет рассматриваться как пожертвование проекту).

В качестве причины создания отдельной ASan-сборки называется желание восполнить недостаток информации, присылаемой в результате отчётов о крахах - подобные отчёты часто указывают на наличие потенциальной уязвимости, но причину краха не всегда удаётся оперативно выявить из-за отсутствия необходимых отладочных данных. Например, в обычных сборках очень трудно локализовать проблемы use-after-free, так как крах обычно происходит значительно позднее выполнения кода с ошибкой при освобождении памяти.

Из-за необходимости сохранения всех освобождённых блоков сборка ASan потребляет заметно больше памяти по сравнению со штатными сборками, поэтому для комфортной работы рекомендуется 16 Гб ОЗУ и ежедневный перезапуск браузера. ASan-сборка пока доступна только для Linux. С точки зрения производительности ASan-сборока незначительно отличается от обычных ночных сборок.

Источник: http://www.opennet.ru/opennews/art.shtml?num=48992

В Google ведётся обсуждение возможной замены Android на ОС Fuchsia

Издание Bloomberg опубликовало официально неподтверждённую инсайдерскую информацию об обсуждении внутри компании Google возможности замены платформы Android на ОС Fuchsia для всех поставляемых под брендом Google устройств, таких как Google Pixel и Google Smart Speaker. На базе Fuchsia планируется сформировать единую универсальную операционную систему, способную работать на любых типах устройств, на которых сейчас используются платформы Android, Chrome OS или сборки Linux для встраиваемых устройств.

До 2021 года на базе Fuchsia планируется предоставить готовое решение для встраиваемой домашней электроники, такой как умные колонки с голосовым управлением. Затем на базе Fuchsia будет подготовлен продукт для более крупных систем, таких как ноутбуки. Конечной целью является разработка замены для платформы Android к середине следующего десятилетия. В статье утверждается, что реализуемые в Fuchsia возможности по обеспечению приватности и безопасности вызывают недовольство и споры с сотрудниками отдела продаж, так как угрожают применяемой в Google рекламной модели монетизации.

Fuchsia изначально развивается с оглядкой на устранение недостатков в платформе Android, касающихся обеспечения безопасности, доставки обновлений и интеграции технологий искусственного интеллекта, таких как голосовой помощник. При этом, последнее время отмечается внесение в кодовую базу Android изменений, нацеленных на обеспечение работы Android Runtime в окружении Fuchsia и добавление поддержки компонентов ядра Zircon, что, вероятно, связано с подготовкой прослойки для обеспечения совместимости с Android-приложениями в Fuchsia. В настоящее время над развитием платформы в Google работает более 100 человек, включая Matías Duarte (дизайнер интерфейсов, отвечавший за интерфейсы webOS и Android 3+) и Nick Kralevich (главный по безопасности платформы Android).

Напомним, что для Fuchsia подготовлен собственный графический интерфейс Armadillo, написанный на языке Dart с использованием фреймворка Flutter. Для обеспечения совместимости с Linux для Fuchsia развивается библиотека Machina, которая позволяет запускать Linux-программы в специальной изолированной виртуальной машине, формируемой при помощи гипервизора на базе ядра Zircon и спецификаций Virtio, по аналогии с тем, как организован запуск Linux-приложений в Chrome OS.

В зависимости от решаемых задач в Fuchsia предлагаются два ядра: Zircon и LK. Zircon является полнофункциональным микроядром, ориентированным на применение на достаточно мощных устройствах, таких как смартфоны и персональные компьютеры. Ядро LK, ранее развивавшееся в рамках проекта littlekernel, предназначено для систем с ограниченным размером ОЗУ и небольшой производительностью процессора, которые обычно применяются во встраиваемых решениях. LK может рассматриваться как открытая альтернатива таким системам, как FreeRTOS и ThreadX.

Ядро Zircon оформлено в виде надстройки над LK с реализацией дополнительных концепций. Например, в Zircon имеется поддержка процессов, а в LK нет, но реализация процессов в Zircon вовлекает компоненты LK для работы с памятью и потоками. В Zircon также поддерживаются такие отсутствующие в LK возможности, как уровень пользователя, система обработки объектов и модель обеспечения безопасности на основе capability. В свою очередь поверх Zircon реализован слой Garnet, предоставляющий драйверы устройств, и Topaz с интерфейсом для создания модулей-расширений.

Проектом Fuchsia также развиваются фреймворк для построения интерфейсов пользователя Peridot, пакетный менеджер Fargo, стандартная библиотека libc, система рендеринга Escher, Vulkan-драйвер Magma, композитный менеджер Scenic, файловые системы MinFS, MemFS, ThinFS (FAT на языке Go) и Blobfs. Для обеспечения безопасности предлагается продвинутая система sandbox-изоляции (новые процессы не имеют доступа к объектам ядра, не могут выделять память и не могут запускать код, а для доступа к ресурсам применяется система пространств имён, определяющая доступные полномочия). Наработки проекта поставляются под лицензиями BSD MIT и Apache 2.0.

Дополнение: Представители пресс-службы Google заявили, что у компании нет официального пятилетнего плана разработки Fuchsia и данная система остаётся одним из многих экспериментальных открытых проектов Google без какого-либо конкретного плана превращения в конечный продукт.

Источник: http://www.opennet.ru/opennews/art.shtml?num=48991

Доступен сборочный инструментарий Qbs 1.12, развиваемый проектом Qt

Опубликован релиз развиваемого проектом Qt сборочного инструментария Qbs 1.12 (Qt Build Suite), который заменит qmake в Qt 6. Для сборки Qbs в качестве зависимости требуется Qt, хотя сам Qbs рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.

Используемый в Qbs язык сценариев адаптирован для автоматизации генерации и разбора сценариев сборки интегрированными средами разработки. Кроме того, Qbs не генерирует make-файлы, а сам, без посредников, таких как утилита make, контролирует запуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе детального графа всех зависимостей. Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков. Для крупных проектов, состоящих из большого числа файлов и поддиректорий, производительность повторной пересборки с использованием Qbs может опережать make в разы - пересборка выполняется почти мгновенно и не заставляет разработчика тратить время на ожидание.

В новой версии:



Источник: http://www.opennet.ru/opennews/art.shtml?num=48990

В ночные сборки Firefox добавлен WebRender, использующий GPU для отрисовки web-страниц

В ночные сборки Firefox, которые лягут в основу выпуска Firefox 63, в качестве временного эксперимента интегрирована система композитинга Servo WebRender, написанная на языке Rust и выносящая на плечи GPU операции отрисовки содержимого страницы. При включении WebRender вместо встроенной в движок Gecko системы композитинга, обрабатывающей данные при помощи CPU, для выполнения операций сводной отрисовки элементов страницы используются шейдеры, выполняемые в GPU, что позволяет добиться существенного увеличения скорости отрисовки.

Новая система будет предложена для тестирования ограниченному числу пользователей ночных сборок, использующих видеокарты NVIDIA и ОС Windows 10. WebRender будет включен для 50% пользователей ночных сборок Firefox, удовлетворяющих вышеотмеченным критериям. Для активации независимо от попадания в группу тестирования в about:config можно выставить переменную "gfx.webrender.all.qualified" в значение "true". Для получения статистики в процессе тестирования будет применяться система Shield Studies, при помощи которой на серверы Mozilla будут отправлены метаданные, позволяющие провести сравнительную оценку частоты крахов у пользователей с включённым WebRender и без него.

В зависимости от результатов тестирования, если отклонение по числу крахов не превысит 5-10% и не всплывут неожиданные регрессивные изменения, будет составлен план интеграции WebRender в основной состав браузера, иначе код будет отправлен на доработку (например, при включении WebRender уже выявлены повышение нагрузки на CPU при просмотре видео на YouTube, снижение FPS при обработке WebGL и проблемы с отрисовкой изображений, встроенных в HTML/CSS).

Источник: http://www.opennet.ru/opennews/art.shtml?num=48989

Выпуск cистемы управления контейнерной виртуализацией Docker 18.06

Подготовлен релиз инструментария для управления изолированными Linux-контейнерами Docker 18.06, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.

Дополнительно объявлено о грядущих изменениях в процессе разработки выпусков Docker Community Edition (CE). Стабильные выпуски (CE Stable) теперь будут формироваться не раз в квартал, а два раза в год, что позволит синхронизировать разработку с такими дистрибутивами, как Ubuntu и Fedora. Для повышение качества стабильных выпусков перед релизом кроме кандидата в релизы будут тестироваться дополнительные бета выпуски.

С целью оперативного доведения новых возможностей до пользователей вместо промежуточных ежемесячных выпусков (CE Edge) будет предоставлен канал nightly с обновляемыми раз в день ночными сборками. Docker 18.06 станет последим выпуском с четырёхмесячным временем сопровождения, а следующий релиз Docker 18.09 будет поддерживаться 7 месяцев. Следом за Docker 18.09 будет сформирован релиз Docker 19.03.

Из функциональных изменений в новом выпуске выделяется реализация нового экспериментального сборочного бэкенда (обеспечивает функциональность команды "docker build") - BuildKit, для активации которого следует установить переменную окружения DOCKER_BUILDKIT=1. Новый бэкенд использует расширяемую модульную архитектуру, поддерживает распараллеливание процесса разрешения зависимостей в несколько потоков, эффективно использует кэширование инструкций и результатов импорта/экспорта, жестко не привязан к формату файлов Dockerfile (могут подключаться обработчики для любых форматов), автоматически выполняет операции сборки мусора, поддерживает вложенный запуск работ, может вызывать распределённые обработчики и не требует в процессе работы полномочий пользователя root.

Из других изменений можно отметить:



Источник: http://www.opennet.ru/opennews/art.shtml?num=48988

Выпуск интегрированной среды разработки Qt Creator 4.7.0

Представлен выпуск интегрированной среды разработки Qt Creator 4.7.0, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками.

В новой версии по умолчанию задействован построитель модели кода для языка С++, основанный на Clang. По сравнению со старым встроенным построителем в Clang более оперативно отражаются все изменения в спецификациях C++, предоставляется более полная информация о возможных проблемах в коде и доступна возможность выявления проблем на основе статического анализа, без необходимости компиляции кода. Отмечаются отдельные ситуации в которых встроенный построитель модели C++ по-прежнему лучше построителя на базе Clang, поэтому предусмотрена возможность возврата к старому построителю при отключении в настойках плагина ClangCodeModel.

Код построителя обновлён до версии Clang 6.0 и теперь поддерживает некоторые новые возможности будущего стандарта C++20. В интерфейс добавлены опции для выбора применения Clang-Tidy или Clazy для проверки кода в процессе редактирования. В режиме отладки добавлена возможность проверки всего кода проекта (Analyze > Clang-Tidy или Clazy). Выявленные анализатором модели кода ошибки и предупреждения теперь дополнительно могут отображаться в панели Issues.

В редакторе кода при нахождении текстового курсора на коде внутри тестовых функций при помощи новой опции "Run Test Under Cursor" теперь можно сразу запустить отдельный тест. В случае выявления проблем при выполнении теста, их местоположение сразу подсвечивается в редакторе. Добавлена поддержка фильтров для Google Test.

Опции механизма комплектов (Kit), позволяющих задействовать собственные инструментарии без необходимости создания для них специальных плагинов, теперь вынесены в отдельную первичную секцию настроек. В настройки (Environment > Interface) также добавлена возможность управления применением автоматического масштабирования на экранах с высокой плотностью пикселей (HiDPI).

В интерфейс навигации по файловой системе добавлена возможность создания каталогов, предложена опция для отображения каталогов в верхней части списка (отдельно от файлов), а также реализована настройка для включения/отключения синхронизации базового каталога с текущим проектом.

Источник: http://www.opennet.ru/opennews/art.shtml?num=48987

Евросоюз оштрафовал Google на 4.3 млрд евро за навязывание своих сервисов в Android

Европейская комиссия признала применяемые компанией Google методы продвижения своих сервисов в платформе Android нарушающими антимонопольное законодательство Евросоюза и наложила штраф в размере 4.3 миллиарда евро (5 миллиардов долларов). Это крупнейший штраф, выписанный IT-компании, в истории антимонопольных разбирательств. Помимо штрафа компании Google предписано устранить выявленные нарушения в течение 90 дней, в противном случае будет начислен дополнительный штраф в размере до 5% от ежедневного совокупного оборота компании. Компания Google не согласилась с решением Еврокомиссии и заявила о намерении подать апелляцию.

Google вменяется злоупотребление доминирующим положением платформы Android для навязывания своих поисковых сервисов и браузера Chrome в форме, ущемляющей конкурирующие продукты, а также создание препятствий для поставки сторонних ответвлений Android на производимых устройствах. Нарушением антимонопольного законодательства признаны следующие действия Google:

По мнению антимонопольного комитета указанные действия позволили поисковому сервису Google занять доминирующее положение на рынке поиска на мобильных устройствах и блокировать продвижение конкурирующих поисковых систем. Аналогично, в заведомо невыгодное положение были поставлены альтернативные web-браузеры для мобильных систем, что дало возможность мобильному варианту браузера Chrome занять лидирующее положение на рынке.

Антимонопольное разбирательство было инициировано в ответ на поданную в 2013 году жалобу от коалиции FairSearch, основанной Microsoft, Nokia и Oracle. Интересно, что изначально FairSearch пыталась преподнести в качестве основного аргумента о нечестной конкуренции бесплатное распространение Android в виде свободного ПО. Указывалось, что имеет место поставка продукта по цене ниже себестоимости, что не позволяет компаниям, поставляющим проприетарные системы, развивать конкурирующие решения. Антимонопольный комитет не согласился с данными доводами, но признал претензии относительно навязывания сервисов и браузера.

Источник: http://www.opennet.ru/opennews/art.shtml?num=48985

Для Linux представлена файловая система TxFS с поддержкой ACID-транзакций

Группа исследователей из Техасского университета в Остине разработала новую файловую систему TxFS, предоставляющую встроенную поддержку транзакций, удовлетворяющих требованиям ACID (атомарность, согласованность, изолированность, надежность). Код ФС доступен только в виде модифицированных исходных текстов ядра Linux 3.18, патчей для других версий пока нет.

TxFS даёт возможность выполнить атомарное применение сразу группы операций над файлами. Например, в рамках изолированной транзакции можно выполнить несколько операций записи в разные файлы, а затем атомарно применить все накопленные изменения, используя синтаксис begin/commit, похожий на транзакции в СУБД. Или можно откатить все внесённые в разные файлы изменения в случае, если в процессе обработки данных были выявлены какие-то проблемы.

     ret = fs_tx_begin();     fd1 = open("file1.txt", O_RDWR | O_APPEND, 0644);     fd2 = open("file2.txt", O_RDWR | O_APPEND, 0644);     write(fd1, "foo\n", 4);     write(fd2, "bar\n", 4);     ret = fs_tx_commit(); // или fs_tx_abort() для отмены транзакции  

ФС TxFS построена поверх штатной инфраструктуры журналирования jbd2 (Journaling block device) и файловой системы Ext4. Производительность системы сопоставима с производительностью обычной файловой системы Ext4. Реализация достаточно компактная и включает в себя всего 5200 строк кода, из которых 1300 составляет внутренний код (разрешение конфликтов, реализация системных вызовов), 1600 - изменения в VFS, 900 - изменения кода журналирования JBD2, 1200 - изменения в ext4 и 200 - изменения кода управления памятью. Помимо кода для расширения ext4 и jbd2 все остальные компоненты универсальны и в будущем могут быть использованы для адаптации TxFS для других ФС, таких как ZFS.

API для управления транзакциями реализован через надстройку над тремя новыми системными вызовами, обеспечивающими открытие, фиксацию и отмену транзакций. В настоящее время подготовлены порты SQLite и Git, использующие TxFS для обеспечения гарантированной устойчивости к сбоям. Благодаря упрощению логики обеспечения атомарности в приложениях и сокращению числа сбросов буферов через fsync(), порт SQLite на базе TxFS показал в тесте TPC-C увеличение производительности в 1.6 раза. Пропускная способность приложения Android Mail при использовании порта SQLite возросла в 2.3 раза. Порт Git продемонстрировал существенное увеличение надёжности и способность предотвращать повреждения данных и нарушения целостности при сбоях во время выполнения операций с репозиторием.

Источник: http://www.opennet.ru/opennews/art.shtml?num=48981

Релиз системы сборки CMake 3.12

Доступен релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.12, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.

CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.

Основные улучшения:



Источник: http://www.opennet.ru/opennews/art.shtml?num=48979 Новости | Севастополь| Crimea-Karro

Страницы: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]

crimea-karro.ru