Компания Oracle выпустила релиз Linux-дистрибутива Oracle Linux 6,
основанного на пакетной базе Red Hat Enterprise Linux 6.0. Дистрибутив
поставляется в сборках для архитектур x86 и x86_64. Установочный
DVD-образ доступен
для свободной загрузки (требуется бесплатная регистрация). Ранее
дистрибутив поставлялся под именами "Oracle Enterprise Linux" и "Oracle
Unbreakable Linux", но несколько месяцев назад было принято решение по
упрощению названия до "Oracle Linux".
Основным отличием Oracle Linux 6 от Red Hat Enterprise Linux 6
является поставка в комплекте двух вариантов пакетов с Linux-ядром
2.6.32: классического варианта от компании Red Hat -
kernel-2.6.32-71.el6 и собственной разработки компании Oracle -
kernel-uek-2.6.32-100.28.5.el6. Подготовленный в Oracle пакет с ядром
используется по умолчанию, но доступен только для платформы x86_64.
Готовые бинарные сборки ядра от Oracle для совместимых c RHEL 4 и 5
дистрибутивов и src.rpm-пакеты представлены на сайте public-yum.oracle.com,
там же можно загрузить и другие присутствующие в дистрибутиве пакеты.
Oracle не накладывает никаких ограничений на поставку подготовленного в
Oracle ядра в сторонних продуктах.
Из особенностей Oracle Linux 6 отмечается:
- Использование по умолчанию файловой системы ext4;
- Опциональная поддержка файловой системы XFS;
- Интеграция работающего на уровне ядра инструментария ftrace для трассировки, анализа производительности и отзывчивости
- Интеграция подсистемы PCL (Performance Counters for
Linux), позволяющей задействовать для выявления узких мест, отладки и
профилирования специальных "PERFMON" регистров, доступных в современных
CPU (например, Intel Core 2). Регистры PERFMON могут отразить такие
статистически данные, как число выполненных инструкций, распределение
попаданий данных во внутренний кеш, качество работы предсказательной
логики CPU. Достоинство задействования аппаратных счетчиков
производительности в возможности проведения операции профилирования без
использования ptrace и без замедления работы на выполнение
сопутствующих вычислений. Для управления представлена специальная
утилита perf, поддерживающая в числе прочего и top-подобный формат
вывода текущей статистики;
- Интеграция утилиты Powertop, нацеленной на
проведения оптимизации энегропотребления через выявление прожорливых
процессов и выработку рекомендаций по уменьшению паразитной нагрузки;
- Интеграция утилиты Latencytop, предназначенной для
выявления приложений, негативно влияющих на отзывчивость системы и
приводящих к блокировкам в результате нехватки ресурсов.
- Прекращение поддержки up2date в пользу
использования только пакетного менеджера yum для установки обновлений
из репозиториев Unbreakable Linux Network (ULN), регистрация в которых
выполняется через команду uln_register.
Особенности Linux-ядра Oracle kernel-uek-2.6.32:
- Поддержка технологии OFED (OpenFabrics Enterprise
Distribution) 1.5.1, реализующей метод удаленного прямого доступа к
памяти (Remote Direct Memory Access - RDMA) и позволяющей выполнять
напрямую некоторые действия в ядре, что позволят добиться повышения
эффективности вычислений, увеличения скорости обмена сообщениями,
значительного сокращения задержек и увеличения пропускной способности
ввода/вывода для серверов, блочных устройств и файловых систем.
- Поддержка кластерной файловой системы OCFS2 1.6, в
которой добавлена поддержка JBD2, расширенных атрибутов, POSIX ACL,
хранения контрольных сумм для мета-данных, индексации директорий и
REFLINK-ов;
- Поддержка фреймворка обеспечения целостности
данных DIF/DIX (Linux data integrity framework), который позволяет
защитить данные от повреждения при их записи в хранилище за счет
сохранения дополнительных корректирующих блоков;
- Поддержка tickless-режима, позволяющего ядру
динамически менять интенсивность генерации прерываний таймера, что
увеличивает время нахождения процессора в состоянии с пониженным
энергопотреблением, как следствие процессор меньше нагревается и
уменьшаются расходы на электроэнергию;
- Поддержка групп контроля за выполнением задач
(Task Control Groups - TCG или cgroups), которые работают на уровне
групп процессов и позволяют управлять доступом к ресурсам процессора,
памяти, пропускной способности сетевых интерфейсов и дисковой
подсистемы ввода/вывода. Cgroups также позволяет определить ограничения
для гостевых операционных системы при их виртуализации;
- Использование подсистемы Performance Counters for Linux (PCL);
- Система автоматического адаптивного тюнинга работы
SSD-накопителей, определяющая факт подключения SSD-накопителя и
применяющая ряд оптимизирующих настроек, зависящих от характера
ввода/вывода;
- Возможность привязки обработчиков ввода/вывода к
определенным процессорным ядрам (IO affinity) с целью увеличения
эффективности кэширования (один и тот же поток обрабатывается одним
ядром CPU);
- Поддержка технологий Receive Packet Steering (RPS)
и Receive Flow Steering (RFS) для прозрачного распределения нагрузки по
обработке входящего сетевого трафика на имеющиеся в системе CPU.
Функция RPS позволяет организовать на разных CPU параллельную обработку
операций над IP и TCP пакетами, для чего для каждого сетевого
устройства или для каждой очереди пакетов добавлен дополнительный
индекс, использующий хэширование по заголовку пакетов для выбора
CPU-обработчика. RFS дополняет RPS эвристическими методами выбора CPU,
не просто выбирая обработчик случайным образом, а учитывая на каком CPU
выполняется вызвавшее системный вызов recvmsg() приложение для наиболее
оптимального использования кэша. Изменения разработаны и переданы в
состав Linux-ядра компанией Google. Измерение производительности
показало, что новая функция позволила увеличить пропускную способность
на восьмиядерном сервере для драйвера tg3 с 90 тыс. транзакций в сек.
до 285 тыс., а для драйвера e1000 с 90 тыс. до 292 тыс. транзакций в
сек. (нагрузка на CPU при этом возросла с 30 до 60%);
- Поддержка системного вызова fallocate(),
обеспечивающего возможность предварительного выделения места под
создаваемые приложением файлы, что позволяет гарантировать, что для
заданного файла в ФС при любых обстоятельствах хватит места, даже если
в процессе создания файла дисковый раздел будет переполнен другими
процессами. Использование fallocate позволяет значительно ускорить
создание больших файлов, таких как образы виртуальных машин;
- Улучшена балансировка IRQ;
- Проведена работа по сокращению блокировок внутри ядра;
- Проведена оптимизация производительности сетевой подсистемы и системы виртуальной памяти.
Подробный обзор новшеств RHEL 6 можно посмотреть здесь, обзор особенностей сборки Linux-ядра от компании Oracle - здесь, а обзор особенностей Linux-ядра от компании Red Hat - здесь.
Источник
|