Компания 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 в облачных и виртуализированных средах.
Источник новости: habr.com