Компания Oracle представила новый проект под названием Oracle Linux Enhanced Diagnostics (OLED). OLED представляет собой набор инструментов, разработанных внутри компании Oracle, изначально предназначенных для Oracle Linux, с целью улучшения процесса отладки, особенно в облачных средах.

Среди самых важных инструментов, включённых в OLED:

  • захват стека ядра для процессов в непрерываемом состоянии (D) с помощью kstack, что помогает отслеживать зависания системы и выявлять проблемы с производительностью;

  • утилита для мониторинга использования памяти и выявления ошибок роста памяти — oled memstate, которая находит утечки и фрагментацию;

  • набор скриптов dtrace, написанных для решения конкретных проблем, которые могут быть полезны и в других системах, работающих на Oracle Linux.

# oled --help
usage: oled {-h | -v | COMMAND [ARGS]}

Valid commands:
     kstack      -- Gather kernel stack based on the process status or PID
     lkce        -- Linux Kernel Core Extractor
     memstate    -- Capture and analyze memory usage statistics
     scanfs      -- Scan KVM images for corruption, supports XFS and EXT4
     scripts     -- Run additional oled-tools scripts
     syswatch    -- Execute user-provided commands based on the CPU utilization
     vmcore_sz   -- Estimating vmcore size before kernel dump

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit

NOTE: Must run as root.

По словам компании Oracle, все инструменты и скрипты, включённые в OLED, были разработаны внутри компании, исходя из реальных проблем, которые специалистам Oracle приходилось отлаживать, анализировать и решать для своих клиентов. Например, компания столкнулась с ситуациями, когда множество процессов долгое время находились в непрерываемом состоянии, что приводило к увеличению средней загрузки системы и вызывало тайм‑ауты устройств или программные зависания. Oracle разработала инструмент kstack для захвата трассировок стека ядра процессов в этом состоянии.

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

Инструменты написаны на Python и C, а разработчики Oracle обещают продолжать расширять набор инструментов и скриптов в будущих релизах OLED. С внедрением OLED американская компания надеется облегчить процесс отладки для разработчиков и системных администраторов, ускорить выявление и решение проблем с производительностью и стабильностью систем, а также улучшить опыт работы с Oracle Linux в облачных и виртуализированных средах.