Ядро операционной системы стало узким местом при выполнении операций в СУБД Redis
Оценив влияние различных факторов на время выполнения операций записи и чтения в СУБД Redis, исследователи обнаружили, что основным источником задержек при вводе/выводе является ядро операционной системы. В частности, при выполнении в Linux операций записи 1 Кб данных в однопоточном экземпляре Redis, 84% времени выполнения запроса тратится на выполнение кода внутри ядра Linux, 13% в компонентах взаимодействия с оборудованием и только 3% непосредственно на стороне приложения. При выполнении операций чтения в ядре тратится 62% времени, а в приложении — 20%. При этом, 70% затраченного на выполнения кода ядра времени приходится на компоненты сетевого стека. Таким образом, производительность Redis во многом упирается в скорость работы сетевого стека. Пытаясь сократить возникающие на уровне ядра задержки, экспериментаторы попытались использовать вместо Linux проект Arrakis, в рамках которой развивается концепция ОС, минимально влияющей на выполнение приложения. Использование Arrakis позволило сократить задержки операций записи на 81%, а чтение на 65%.
Полный текст статьи читайте на OpenNet